Laravel migrazioni


Esempio

Per controllare il tuo database in Laravel è usando le migrazioni. Crea migrazione con artigiano:

php artisan make:migration create_first_table --create=first_table

Questo genererà la classe CreateFirstTable. All'interno del metodo up puoi creare le tue colonne:

<?php

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

class CreateFirstTable extends Migration
{
    public function up()
    {
        Schema::create('first_table', function (Blueprint $table) {
            $table->increments('id');
            $table->string('first_string_column_name');
            $table->integer('secont_integer_column_name');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::drop('first_table');
    }
} 

Alla fine di eseguire tutte le classi di migrazione è possibile eseguire il comando artisan:

php artisan migrate

Questo creerà le tue tabelle e le tue colonne nel tuo database. Altri comandi di migrazione utili sono:

  • php artisan migrate:rollback - Rollback l'ultima migrazione del database
  • php artisan migrate:reset - Ripristina tutte le migrazioni di database
  • php artisan migrate:refresh - Reimposta e riesegui tutte le migrazioni
  • php artisan migrate:status : mostra lo stato di ciascuna migrazione

Modifica delle tabelle esistenti

A volte, è necessario modificare la struttura della tabella esistente come renaming/deleting colonne. Che puoi realizzare creando una nuova migrazione. E nel metodo up della tua migrazione.

//Renaming Column.

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->renameColumn('email', 'username');
    });
}

L'esempio sopra ridenomina la email column della users table al username . Mentre il codice sottostante rilascia un username colonna dalla tabella degli users .

IMPROTANT: per modificare le colonne è necessario aggiungere la dipendenza doctrine/dbal al file composer.json del progetto ed eseguire l' composer update per riflettere le modifiche.

//Droping Column
public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropColumn('username');
    });
}