Maison > Article > développement back-end > Gestion des schémas de base de données dans Laravel à l'aide des migrations : un didacticiel approfondi
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.
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
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à.
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.
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).
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.
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.
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
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.
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.
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!