La gestion de la structure de la base de données peut devenir complexe lors du développement d’une application.
Sans une méthode efficace, la synchronisation des schémas entre les environnements et les équipes peut entraîner des erreurs coûteuses.
Laravel propose des migrations, qui simplifient la gestion et la versioning de votre base de données, garantissant une structure cohérente et évolutive.
Initiez-vous à Laravel et réalisez votre première application en toute confiance.

Migrations par défaut dans Laravel
Les migrations dans Laravel sont des fichiers qui permettent de définir la structure de votre base de données, telles que la création de tables, l’ajout de colonnes, ou la modification des relations. Elles vous permettent de versionner vos bases de données, de manière similaire à la gestion de versions pour le code.
Lors de la création d’une nouvelle application Laravel, plusieurs migrations par défaut sont fournies pour gérer des aspects essentiels comme les utilisateurs, les mots de passe et les sessions. Ces migrations se trouvent dans le répertoire database/migrations de votre application.
Les migrations par défaut incluent généralement :
- Migration de la table users :Elle est utilisée pour stocker les informations des utilisateurs, comme le nom, l’email, et le mot de passe.
public function up(): void
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Explication :
- $table->id() :Crée une colonne id de type BIGINT qui est la clé primaire de la table.
- $table->string(‘name’) :Crée une colonne name pour stocker le nom de l’utilisateur.
- $table->string(’email’)->unique() :Crée une colonne email pour stocker l’adresse email de l’utilisateur, avec une contrainte d’unicité.
- $table->timestamp(’email_verified_at’)->nullable() :Crée une colonne email_verified_at pour stocker la date et l’heure de la vérification de l’email de l’utilisateur (elle peut être NULL si non vérifié).
- $table->string(‘password’) :Crée une colonne password pour stocker le mot de passe de l’utilisateur.
- $table->rememberToken() :Crée une colonne remember_token utilisée pour l’authentification « se souvenir de moi » dans Laravel.
- $table->timestamps() :Crée les colonnes created_at et updated_at pour suivre les dates de création et de mise à jour des enregistrements.
- Migration de la table password_resets :Elle sert à gérer les réinitialisations de mots de passe pour les utilisateurs.
public function up(): void
{
Schema::create('password_reset_tokens', function (Blueprint $table) {
$table->string('email')->primary();
$table->string('token');
$table->timestamp('created_at')->nullable();
});
}
Explication :
- $table->string(’email’)->index() :Crée une colonne email pour stocker l’email de l’utilisateur qui a demandé une réinitialisation de mot de passe. L’indexation permet d’accélérer les recherches sur cette colonne.
- $table->string(‘token’) :Crée une colonne token pour stocker le jeton unique généré pour la réinitialisation du mot de passe.
- $table->timestamp(‘created_at’)->nullable() :Crée une colonne created_at pour stocker la date de création de la demande de réinitialisation du mot de passe (elle peut être NULL).
- Migration de la table failed_jobs :Elle est utilisée pour gérer les échecs des tâches en arrière-plan.
public function up(): void
{
Schema::create('failed_jobs', function (Blueprint $table) {
$table->id();
$table->string('uuid')->unique();
$table->text('connection');
$table->text('queue');
$table->longText('payload');
$table->longText('exception');
$table->timestamp('failed_at')->useCurrent();
});
}
Explication :
- $table->id() :Crée une colonne id qui est la clé primaire.
- $table->string(‘connection’) :Crée une colonne connection pour stocker le nom de la connexion à la queue qui a échoué.
- $table->string(‘queue’) :Crée une colonne queue pour stocker le nom de la queue où la tâche a échoué.
- $table->text(‘payload’) :Crée une colonne payload pour stocker les données brutes de la tâche (en format JSON).
- $table->text(‘exception’) :Crée une colonne exception pour stocker les détails de l’exception qui a causé l’échec de la tâche.
- $table->timestamp(‘failed_at’)->useCurrent() :Crée une colonne failed_at pour stocker la date et l’heure de l’échec, avec la valeur par défaut étant la date et l’heure actuelles.
Ces migrations sont prêtes à l’emploi et suffisent pour débuter un projet de gestion d’utilisateur simple dans Laravel.
Exécuter Artisan migrate pour tables
Une fois que les migrations sont en place, vous devez les exécuter pour que les tables correspondantes soient créées dans la base de données. Pour ce faire, vous pouvez utiliser la commande Artisan suivante :
php artisan migrate
Cette commande :
- Exécute toutes les migrations non encore exécutées dans votre application.
- Crée les tables définies dans les fichiers de migration dans la base de données configurée.
Une fois que vous avez lancé cette commande, vous pouvez vérifier si la base de données ‘blog’ a été créée avec succès, ainsi que ses tables. Voici le résultat que vous trouverez en vérifiant dans phpMyAdmin :
Si vous souhaitez effectuer une réinitialisation de la base de données pour repartir de zéro, vous pouvez utiliser la commande suivante, qui efface toutes les tables et relance les migrations :
php artisan migrate :refresh
Cela vous permet de réinitialiser rapidement la structure de votre base de données sans avoir à supprimer manuellement les tables.
Résumé des migrations par défaut Laravel
Migration | Description |
---|---|
users | Stocke les informations des utilisateurs |
password_resets | Gère les demandes de réinitialisation |
failed_jobs | Enregistre les tâches en échec |
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Qu'est-ce qu'une migration dans Laravel ?
Quels sont les fichiers de migration par défaut dans Laravel ?
Comment exécuter les migrations dans Laravel ?
Quelle est la commande pour réinitialiser la base de données ?
Pourquoi utiliser les migrations dans Laravel ?
Conclusion
Les migrations sont un outil puissant pour gérer les bases de données dans Laravel. Comment envisagez-vous d’utiliser les migrations pour améliorer la structure de votre application ?