Aller au contenu principal

Migrations avec Doctrine

Comment gérer les modifications de la base de données avec les migrations Doctrine

Notions théoriques

Les migrations sont un moyen de gérer les modifications de votre base de données au fil du temps. Elles permettent de versionner votre base de données, en gardant un historique des modifications apportées à sa structure.

Doctrine, l'ORM par défaut de Symfony, fournit un outil de migration qui automatise le processus de création et d'exécution des migrations. Chaque fois que vous modifiez la structure de votre base de données, vous pouvez créer une nouvelle migration qui décrit ces modifications. Ensuite, vous pouvez exécuter cette migration pour appliquer les modifications à votre base de données.

Exemple de mise en application

Supposons que nous voulons ajouter une nouvelle propriété level à notre entité Character. Après avoir ajouté la propriété à l'entité, nous pouvons créer une nouvelle migration avec la commande suivante :

php bin/console make:migration

Cela génère un nouveau fichier de migration dans le répertoire migrations/ de votre projet. Le fichier de migration contient deux méthodes : up et down. La méthode up est utilisée pour appliquer la migration, tandis que la méthode down est utilisée pour annuler la migration.

Pour appliquer la migration et mettre à jour la base de données, vous pouvez exécuter la commande suivante :

php bin/console doctrine:migrations:migrate

Test de mémorisation/compréhension


Qu'est-ce qu'une migration dans Symfony ?


Comment crée-t-on une nouvelle migration dans Symfony ?


Comment exécute-t-on une migration dans Symfony ?


Quelle méthode d'une classe de migration est utilisée pour appliquer la migration ?


Quelle méthode d'une classe de migration est utilisée pour annuler la migration ?



TP pour réfléchir et résoudre des problèmes

Votre défi pour aujourd'hui consiste à ajouter une nouvelle propriété à l'entité Character

Ajoutez une nouvelle propriété experience à l'entité Character.

Cette propriété représentera l'expérience accumulée par le personnage dans le jeu.

Après avoir ajouté la propriété à l'entité, vous devrez créer une nouvelle migration et l'exécuter pour mettre à jour la base de données.

Une solution