LaravelにはmigrationというDBを管理できる、DBのバージョン管理のようなサポート(≒機能)があります。
これはLaravelのSchemaファサードに属しており、(Laravelが対応する)全てのDBシステムに対してtableを作成・操作するため、特定のDBに依存しないサポートを提供します。
migrationは通常このFacadeを使用して、DBのtableとcolumnを作成・変更します。
この機能を使えば、全てのエンジニアが同じDBを揃えることが可能になり、わざわざ手動でDBを変更する作業を行わなくてもよくなります。
tableを削除する方法
Laravelのmigrationでは、既存のtableを削除するときにはdropまたはdropIfExistsメソッドを使います。
migrationを生成するときは以下の様にmake:migrationArtisanコマンドを使用してmigrationファイルを生成します。
php artisan make:migration create_flights_table
先ほど挙げた通り、tableの削除はdropまたはdropIfExistsなので、恐らくファイル名は以下でok。
php artisan make:migration drop_flights_table
migrationの構造
migrationファイルには2つのメソッドが必要です。upメソッドとdownメソッド。
upメソッドはDBに新しいテーブル、カラム、またはインデックスを追加するために使用します。
downメソッドはupメソッドで実行したのと逆の操作をする。以前の状態に戻せます。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CraeteFlightsTable extends Migration
{
/**
* マイグレーションの実行
*
* @return void
*/
public function up()
{
Schema::create('flights', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('flights');
$table->timestamp();
});
}
/** マイグレーションを戻す
*
* @return void()
*/
public function down()
{
Schema::drop('flights');
}
}
migrationの実行
以下のコマンドを実行すると、未処理のmigrationファイルをすべて実行することができます。
php artisan migrate
どのmigrationファイルが実行されているかを確認するには以下のコマンドを実行で確認できます。
php artisan migrate:status
