Qu’est-ce qu’une migration
Une migration s’apparente à un système de contrôle de version pour la base de données. Elle permet à une équipe de partager et gérer le schéma de la base. Vous avez sans doute déjà connu la situation où, après unpull du code, il faut demander à ses collègues d’« ajouter manuellement une colonne à leur base locale ».
Les migrations résolvent ce problème.
Les fichiers de migration sont stockés dans database/migrations.
Chaque nom de fichier contient un horodatage qui détermine l’ordre d’exécution.
Créer un fichier de migration
Utilisez la commande Artisanmake:migration.
create_posts_table produit un stub pour créer la table posts.
Structure d’une migration
Une classe de migration possède deux méthodes :up et down.
up: ajoute les tables, colonnes et index à la base.down: annule les opérations deup. Appelée lors du rollback.
Méthodes de définition de colonne
Blueprint propose de nombreux types de colonnes.
Modificateurs de colonne
Utilisez les méthodes chaînées pour ajouter des modificateurs.Exécuter les migrations
migrate exécute toutes les migrations en attente.
migrate:status liste les migrations exécutées et celles en attente.
Rollback
migrate:rollback annule le dernier lot de migrations.
--step limite le nombre de migrations à annuler.
migrate:refresh annule toutes les migrations puis les réexécute.
migrate:refresh recrée toutes les tables et supprime les données. Pratique pour réinitialiser la base en développement.Exemple : création de la table posts
Voyons la création d’une tableposts pour gérer des articles de blog.
1. Génération de la migration
2. Édition de la migration
Ouvrezdatabase/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php.
3. Exécution
posts est créée.
4. Ajouter une colonne après coup
Pour ajouter une colonne à une table existante, créez une nouvelle migration sans modifier l’existante.Événements de migration
Chaque opération de migration déclenche un événement. Tous héritent deIlluminate\Database\Events\MigrationEvent.
Par exemple, écoutez
MigrationsEnded pour vider le cache à la fin :
Prochaines étapes
Seeding de base de données
Alimentez les tables créées par vos migrations avec des données d’exemple.
Introduction à Eloquent
Manipulez les tables issues des migrations avec l’ORM Eloquent.