N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.
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 :
- Suppression du patch dans la base de données dans la table patch_list
- 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 🙂

