Cours - Symfony - Annexe 1 - Migration de 5.3 à 5.4

SOMMAIRE



Introduction


Symfony évolue très rapidement. Il est souvent nécessaire de le mettre à jour afin de bénéficier des nouvelles fonctionnalités. De plus, la version 5.4 est la dernière version de la branche 5. Cela veut dire que le support sera assuré quelques années. Il est donc intéressant de voir comment faire.

Réaliser une copie du projet

Comme toujours, n’oubliez pas de changer d’utilisateur afin de ne pas être en root.


su login????

Dans /var/www/html:


cp -r share share54


Mettre en place la base de données du nouveau projet


Dans /var/www/html/share54 :


Si vous avez un fichier .env.local, ouvrez-le, sinon ouvrez-le .env


Modifiez le nom de la base de données en y ajoutant 54 à la fin :



DATABASE_URL="mysql://login4400:XXXXXXXX@127.0.0.1:3306/dbshare54?serverVersion=mariadb-10.3.29"

Suppression de toutes les versions de la base de données réalisées précédemment afin de reconstruire la base de données intégralement.


rm migrations/*


Création de la base de données « dbshare54 ».


php bin/console doctrine:database:create


Préparation de la migration


php bin/console make:migration


Migration dans MariaDB

php bin/console doctrine:migrations:migrate


Sauvegarde des données et importation dans la nouvelle base de données 

Exportation des données. L’option « -–no-create-info » permet de ne pas récupérer les créations de tables.


mysqldump --no-create-info -u login4400 -p dbshare > data-share.sql


Importation des données


mysql --user='login4400' --password='XXXXXXXX' dbshare54 <'data-share.sql'


Migration vers Symfony 5.4 

Le principe consiste à modifier les valeurs 5.3.* dans le fichier composer.json. Je rappelle que c’est ce fichier qui permet de savoir quels sont les paquets installés. Cela évite, par exemple, de sauvegarder toutes les librairies sur votre GitHub. Lorsque vous récupérez un projet Symfony, il suffira de faire un « composer install » pour tout installer. C’est à ce moment-là que le fichier composer.json sera lu.


Modification du fichier composer.json


Dans le fichier composer.json, faites apparaître la barre de recherche avec les touches CRTL + F

Puis déroulez le composant afin de faire apparaître deux zones de saisie. Dans la première, tapez 5.3.* puis 5.4.* dans la seconde. Cliquez sur « Replace All » puis appuyez sur la touche entrée.




Mise à jour des paquets


composer update


Quelques avertissements apparaissent, ici, deux packages ne sont plus supportés.


Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.

Package symfony/swiftmailer-bundle is abandoned, you should avoid using it. Use symfony/mailer instead.


Nous allons les supprimer.

Retirez les lignes swiftmailer/swiftmailer et symfony/swiftmailer-bundle du fichier composer.json et refaites :


composer update


Des erreurs apparaitront, car le code utilisait ces packages.


Installation du package qui remplace les deux précédents


composer require symfony/mailer