【Laravel】migrationでtableを削除する
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:migration
Artisanコマンドを使用してmigrationファイルを生成します。
1 |
php artisan make:migration create_flights_table |
先ほど挙げた通り、tableの削除はdropまたはdropIfExistsなので、恐らくファイル名は以下でok。
1 |
php artisan make:migration drop_flights_table |
migrationの構造
migrationファイルには2つのメソッドが必要です。upメソッドとdownメソッド。
upメソッドはDBに新しいテーブル、カラム、またはインデックスを追加するために使用します。
downメソッドはupメソッドで実行したのと逆の操作をする。以前の状態に戻せます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?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ファイルをすべて実行することができます。
1 |
php artisan migrate |
どのmigrationファイルが実行されているかを確認するには以下のコマンドを実行で確認できます。
1 |
php artisan migrate:status |
-
前の記事
LaravelのMass Assignmentとは 2021.11.01
-
次の記事
MAMP/XAMPPをインストールしたときに入っている機能 2021.11.03