Maison développement back-end tutoriel php 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

Sep 14, 2024 am 06:16 AM

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
Copier après la connexion

Naviguez ensuite dans le dossier du projet :

cd migration-demo
Copier après la connexion

É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
Copier après la connexion

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
Copier après la connexion

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');
    }
}
Copier après la connexion

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
Copier après la connexion
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
    });
}
Copier après la connexion

Exécutez la migration pour appliquer les modifications :

php artisan migrate
Copier après la connexion
Copier après la connexion

É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
Copier après la connexion

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'),
        ]);
    }
}
Copier après la connexion

Ensuite, lancez le seeder en utilisant :

php artisan db:seed --class=UsersTableSeeder
Copier après la connexion

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
Copier après la connexion

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)

Introduction à l'API Instagram Introduction à l'API Instagram Mar 02, 2025 am 09:32 AM

Introduction à l'API Instagram

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Travailler avec les données de session Flash dans Laravel

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Construisez une application React avec un Laravel Back End: Partie 2, React

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Misque de réponse HTTP simplifié dans les tests Laravel

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

12 meilleurs scripts de chat PHP sur Codecanyon

Annonce de l'enquête sur la situation en 2025 PHP Annonce de l'enquête sur la situation en 2025 PHP Mar 03, 2025 pm 04:20 PM

Annonce de l'enquête sur la situation en 2025 PHP

See all articles