Magento 2 : Gagner du temps sur la création de vos DataPatch

Les datapatches magento permettent de déployer rapidement des changements spécifiques via un module sur l’ensemble des environnements de votre projet de manière automatique.

  • 
Ils sont rangés dans le dossier Setup/Patch/Data de votre module et ils implémentent l’interface \Magento\Framework\Setup\Patch\DataPatchInterface
  • Il sont appliqués automatiquement si nécessaire uniquement lors de l’exécution de la commande bin/magento setup:upgrade

Dans le cas de la réalisation de patchs complexes il peut être nécessaire de les rejouer plusieurs fois pour vérifier que tout fonctionne correctement.

La procédure à effectuer est la suivante :

  1. Suppression du patch dans la base de données dans la table patch_list
  2. Exécution de la commande bin/magento setup:upgrade


Cette procédure est relativement lente comme l’exécution du setup:upgrade est longue, car magento réalise pleins d’opérations autres que l’application des patches.


Nous allons voir ici comment gagner du temps à cette étape.



Nous allons utiliser une fonctionnalité qui est proposée par l’indispensable commande console n98-Magerun2 , que vous pouvez télécharger ici : https://github.com/netz98/n98-magerun2 


La commande qui nous intéresse est dev:console .

Celle-ci permets d’exécuter du code php directement dans la console, et utilise https://psysh.org/ en technologie.

Voici comment faire pour lancer directement votre data patch via ce biais

On se rends dans la console

php n98-magerun2.phar dev:console

Dans la console :

On va charger la classe de notre dataPatch, puis on va appliquer la méthode apply

Par exemple :

$patch = $di->create(\Vendor\Module\Setup\Patch\Data\DataPatchModule::class); 

$patch->apply()

Via ce biais plus besoin de perdre du temps à attendre l’éxécution de la commande bin/magento stup:upgrade 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *