Cours - Symfony - Annexe 1 - Migration de 5.3 à 5.4
SOMMAIRE
Mettre en place la base de données du nouveau projet
Sauvegarde des données et importation dans la nouvelle base de données
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