Maison  >  Article  >  développement back-end  >  Gestion des schémas de base de données dans Laravel à l'aide des migrations : un didacticiel approfondi

Gestion des schémas de base de données dans Laravel à l'aide des migrations : un didacticiel approfondi

DDD
DDDoriginal
2024-09-14 06:16:371169parcourir

Database Schema Management in Laravel Using Migrations: An In-Depth Tutorial

Les migrations Laravel sont un excellent moyen de gérer les modifications du schéma de base de données. Ils vous permettent de contrôler la version de la structure de la base de données et d'annuler ou de modifier facilement les modifications au fil du temps. Dans ce guide, nous explorerons étape par étape le processus de création, d'exécution et d'annulation des migrations dans Laravel, avec un exemple pratique.

Étape 1 : Configurer l'environnement Laravel

Avant de commencer les migrations, assurez-vous que Laravel est installé. Vous pouvez le faire via Composer :

composer create-project --prefer-dist laravel/laravel migration-demo

Naviguez ensuite dans le dossier du projet :

cd migration-demo

Étape 2 : Configuration de la base de données

Pour configurer la base de données, ouvrez le fichier .env dans votre projet Laravel et mettez à jour les informations d'identification de la base de données :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password

Après avoir configuré votre base de données, vous pouvez créer une nouvelle base de données dans votre environnement local si elle n'existe pas déjà.

Étape 3 : Créer une migration

Vous pouvez créer une nouvelle migration à l'aide de la commande artisan. Par exemple, pour créer une migration de table d'utilisateurs :

php artisan make:migration create_users_table

Cette commande génère un fichier de migration dans le répertoire database/migrations. Le nom du fichier contiendra un horodatage et ressemblera à 2024_09_13_123456_create_users_table.php.

Étape 4 : Définir le schéma de migration

Ouvrez le fichier de migration généré. Vous trouverez deux méthodes : up() (pour définir la création de la table) et down() (pour définir comment la table doit être restaurée).

Exemple de création d'une table d'utilisateurs :

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id(); // Primary key
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps(); // Created at & Updated at
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

Dans la méthode up(), nous définissons la structure de la table des utilisateurs. La méthode down() définit comment supprimer la table en cas de restauration (c'est-à-dire, supprimer la table).

Étape 5 : Exécuter la migration

Pour lancer la migration et créer la table des utilisateurs dans votre base de données, utilisez la commande suivante :

php artisan migrate

Cette commande exécutera toutes les migrations qui n'ont pas encore été exécutées. Vous devriez voir le résultat suivant :

Migrating: 2024_09_13_123456_create_users_table
Migrated:  2024_09_13_123456_create_users_table (0.45 seconds)

Vous pouvez vérifier que la table des utilisateurs a été créée dans votre base de données.

Étape 6 : Annuler les migrations

Pour annuler la migration la plus récente, utilisez la commande suivante :

php artisan migrate:rollback

Cela supprimera la table des utilisateurs ou toute table définie dans le lot de migration le plus récent.

Pour annuler plusieurs étapes de migration, utilisez :

php artisan migrate:rollback --step=2

Cela annule les deux derniers lots de migrations.

Étape 7 : Modifier une table existante

Si vous souhaitez modifier une table existante (par exemple ajouter une colonne), créez une nouvelle migration :

php artisan make:migration add_phone_to_users_table --table=users

Cela crée une migration pour modifier la table des utilisateurs. Vous pouvez ensuite définir les modifications :

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('phone')->nullable(); // Add phone column
    });
}

public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropColumn('phone'); // Remove phone column
    });
}

Exécutez la migration pour appliquer les modifications :

php artisan migrate

Étape 8 : Amorçage de la base de données

Laravel vous permet également d'amorcer la base de données avec des données factices. Pour créer un seeder, utilisez :

php artisan make:seeder UsersTableSeeder

Dans le fichier seeder situé dans database/seeders/UsersTableSeeder.php, vous pouvez définir les données :

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;

class UsersTableSeeder extends Seeder
{
    public function run()
    {
        DB::table('users')->insert([
            'name' => 'John Doe',
            'email' => 'john@example.com',
            'password' => Hash::make('password'),
        ]);
    }
}

Ensuite, lancez le seeder en utilisant :

php artisan db:seed --class=UsersTableSeeder

Vous pouvez également amorcer la base de données lors de la migration en appelant le seeder dans DatabaseSeeder.php.

Étape 9 : Exécuter toutes les migrations et tous les seeders

Pour réinitialiser la base de données et exécuter toutes les migrations et seeders :

php artisan migrate:fresh --seed

Cette commande supprimera toutes les tables, réexécutera toutes les migrations et amorcera la base de données.

Étape 10 : Bonnes pratiques de migration

  • Contrôle de version : validez toujours les migrations vers le contrôle de version (Git) avec votre code.
  • Petites migrations : divisez les grandes migrations en migrations plus petites pour faciliter la restauration et le débogage.
  • Évitez de modifier les migrations existantes : Si vous avez déjà exécuté une migration en production, créez-en une nouvelle pour modifier la base de données au lieu de modifier la migration existante.

Résumé d'un exemple pratique

  1. Créez un nouveau projet Laravel.
  2. Configurez le fichier .env pour la connexion à la base de données.
  3. Créez une migration pour la table des utilisateurs.
  4. Définissez le schéma de la table dans la méthode up().
  5. Exécutez la migration avec php artisan migrate.
  6. Modifiez la table des utilisateurs en ajoutant une colonne téléphone via une autre migration.
  7. Annulez ou réexécutez les migrations si nécessaire.
  8. Amorcer la base de données avec des exemples de données.
  9. Gérez efficacement l'état de la base de données à l'aide des migrations.

En suivant ces étapes, vous pouvez facilement gérer les modifications du schéma de base de données dans Laravel à l'aide des migrations. Les migrations Laravel sont un élément essentiel pour garder la structure de la base de données contrôlée et synchronisée dans différents environnements tels que le développement, la préparation et la production.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn