Prestashop : Simplifier les migrations de version avec une commande console

Comme vous avez sans doute pu le suivre sur mes derniers articles sur le blog, j’essaye d’automatiser au maximum toutes les actions lors du déploiement des sites Prestashop.
Si besoin je vous renvoie vers la série d’articles ici : https://www.h-hennes.fr/blog/2023/09/16/prestashop-deploiement-continu-initialisation-du-projet/

Il y’a cependant encore un point qui me posait pas mal problème c’est les mises à jour de version de Prestashop.
Pour les mises à jour mineures, l’utilisation du module autoupgrade fait tout à fait l’affaire, mais il n’est pas pratique à utiliser dans car il est nécessaire de le lancer directement sur l’instance pour réaliser les différentes mises à jour.

Avec un workflow standard de CI/CD ce n’est pas possible de travailler de cette manière.
Les fichiers changés peuvent facilement être suivis via git, mais il est toujours nécessaire d’appliquer les mises à jour de la base de données.
Et le module autoupgrade ne permets pas à ma connaissance de le faire facilement

Je n’ai pas trouvé de solution existante et pratique pour faire cela, mais comme souvent avec Prestashop la création d’un module permets de répondre facilement à la problématique.
L’objectif de celui-ci sera d’appliquer les mises à jour de la base de données via une simple commande CLI.

Pour le code de base qui va réaliser cette action, inutile de réinventer la roue.
J’ai tout simplement repris le code du module autoupgrade qui effectue la mise à jour de la base de données.

Mais en permettant de choisir à la fois la version source et à la version cible.
On pourrait ainsi exécuter la commande suivante :

bin/console hhennes:psmigration:upgrade-db 8.1.3 8.1.5

Il est également possible de connaître facilement les mises à jour de base de données à appliquer entre 2 versions sans les exécuter avec l’option –dry-run

bin/console hhennes:psmigration:upgrade-db 1.7.8.11 8.1.5 --dry-run

N’hésitez pas à me faire des retours sur vos astuces 🙂
Pour rappel pour vous télécharger le module (gratuitement) sur la boutique ici :
Pensez à vous abonnez aux mises à jour de celui-ci pour être informés de la sortie des dernières versions 🙂

Télécharger le module complet ( et gratuit ) sur la boutique

Laisser un commentaire

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