Qu'est-ce que la migration de base de données dans Laravel ?

Qu'est-ce que la migration de base de données dans Laravel ?



Laravel il y a 4 mois

Qu'est-ce que la migration de base de données dans Laravel ?

Les migrations de base de données Laravel offrent un mécanisme puissant pour gérer les modifications du schéma de base de données de votre application de manière structurée et versionnée. Elles agissent comme un contrôle de version pour votre base de données, garantissant que la structure de votre base de données évolue en même temps que le code de votre application.

Avantages de l'utilisation des migrations

  • Contrôle de version : Les migrations sont suivies dans les systèmes de contrôle de version comme Git, ce qui vous permet d'examiner les modifications, de revenir à des états précédents et de partager facilement les mises à jour de schéma entre les environnements de développement.
  • Collaboration d'équipe : Les migrations permettent une collaboration transparente en fournissant un historique clair des modifications du schéma de base de données, facilitant la compréhension et l'application des modifications par les membres de l'équipe.
  • Agnosticisme de la base de données : Le générateur de schéma de Laravel offre une prise en charge indépendante de la base de données. Vous pouvez écrire des migrations une fois et les faire fonctionner avec divers systèmes de bases de données tels que MySQL, PostgreSQL, SQLite et SQL Server.

Création d'une migration

  1. Générer un fichier de migration : Utilisez la commande Laravel Artisan pour créer un nouveau fichier de migration :

    Bash

    php artisan make:migration CréerTableUtilisateurs
    

    Cette commande crée un nouveau fichier de migration nommé CréerTableUtilisateurs_AA-MM-JJ_HHMMSS.php (où l'horodatage garantit un ordre chronologique) dans le répertoire database/migrations.

  2. Définir la méthode Up : La méthode up contient la logique de création de la table de base de données ou d'apporter des modifications au schéma. Voici un exemple de création d'une table utilisateurs avec des colonnes pour id, nom, email et mot_de_passe :

    PHP

    public function up()
    {
        Schema::create('utilisateurs', function (Blueprint $table) {
            $table->id();
            $table->string('nom');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('mot_de_passe');
            $table->rememberToken();
            $table->timestamps();
        });
    }
    
    • Schema::create prend le nom de la table et une fermeture pour définir ses colonnes en utilisant l'API fluide fournie par le générateur de schéma de Laravel.
    • Diverses méthodes comme id(), string(), unique(), nullable(), etc. sont disponibles pour définir les types de données et les contraintes des colonnes.
  3. Définir la méthode Down (facultatif) : La méthode down vous permet d'annuler les modifications apportées dans la méthode up. Ceci est utile pour restaurer les migrations si nécessaire. Dans cet exemple :

    PHP

    public function down()
    {
        Schema::dropIfExists('utilisateurs');
    }
    

Exécuter des migrations

  1. Migrer la base de données (nouvelle installation) : Après avoir créé des migrations, exécutez la commande suivante pour appliquer toutes les migrations en attente (en supposant une base de données MySQL) :

    Bash

    php artisan migrate
    
  2. Migrer une migration individuelle : Pour appliquer une migration spécifique, utilisez :

    Bash

    php artisan make:migration CréerTableArticles
    php artisan migrate
    
  3. Annuler les migrations : Pour annuler les modifications apportées par une migration :

    Bash

    php artisan migrate:rollback
    

Bonnes pratiques

  • Nommage descriptif : Utilisez des noms clairs et concis pour les fichiers de migration qui reflètent leur objectif (par exemple, CréerTableUtilisateurs, AjouterPhotoProfilAuxUtilisateurs).
  • Changements atomiques : Assurez-vous que chaque migration effectue une seule modification atomique au schéma de base de données. Cela simplifie la restauration et le débogage.
  • Commentaires : Ajoutez des commentaires à vos fichiers de migration pour expliquer le but de chaque modification, en particulier pour les migrations complexes.
  • Données d'amorçage : Si vous devez initialiser votre base de données avec des données initiales après les migrations, envisagez d'utiliser la fonctionnalité d'amorçage de base de données de Laravel (https://laravel.com/docs/11.x/seeding).