【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: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

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です