Comment faire une migration de base de donnée sous Laravel ?

Temps de lecture: 1 minute

Pour faire une migration sous Laravel il vous faut d’abord créer un fichier à sauvegarder dans le dossier Database/migrations.

Le fichier est un fichier php, dont le nom est défini par le système

php artisan make:migration create_users_table

php artisan make:migration create_users_table --create=users

Cette commande va créer un fichier et le placer dans le répertoire mentionné ci-dessus. On peut être plus précis en indiquant le nom de la table.

Un fichier de migration est constitué de deux partie, la partie Up, qui contient le script de création (table, colonne, index), et la partie Down, qui contient tout ce qu’il faut pour défaire ce que Up a fait, c’est donc un rembobinage de vos modification.

Comment écrire le script de migration Laravel

<?php

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

class CreateUserTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email');
            $table->timestamps();
        });
    }

    /**
     * annule la migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }
}

Il est clair que si le script ajoutait ou renommait une colonne, votre code de migration fera exactement l’inverse.

Comment exécuter une migration dans Laravel ?

Une fois que le script est fait, il ne vous reste plus qu’à exécuter la commande pour migrer

php artisan migrate

 

Comment revenir à l’état antérieur dans la migration Laravel ?

#revenir à l'étape d'avant
php artisan migrate:rollback

#revenir à plusieurs étapes avant
php artisan migrate:rollback --step=5


#revenir au tout début
php artisan migrate:reset

# effacer toutes les tables et refaire la migration du début
php artisan migrate:fresh


 

Pour une documentation vraiment exhaustive aller sur ce lien.