【市場価値がわかる】エンジニア転職におすすめなサイト

Laravelでカラムの追加と削除を同じマイグレーションファイルで行う

20代の転職ならマイナビジョブ

Laravelで一つのマイグレーションファイルでカラムの追加と削除を行うにはどうすればいいんだろう…

こんな疑問を解決します。

カラムの追加と削除のマイグレーションファイルを別々に作成するのは面倒ですよね。

この記事を最後まで読めば、一つのマイグレーションファイルでカラムの追加と削除を行う方法がわかります。

companiesテーブルの構造

companiesテーブルに以下のカラムを追加

  • company_edit_flg
  • company_update_flg
  • company_delete_flg

companiesテーブルに以下のカラムを削除

  • book_index_flg
  • book_create_flg
  • book_store_flg

上記を1つのマイグレーションファイルで書く方法について解説します。

まずは、マイグレーションファイルを作成します。

php artisan make:migration add_drop_columns_to_companies_table --table=companies

マイグレーションファイルを編集します。

<?php

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

class AddDropColumnsToCompaniesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('companies', function (Blueprint $table) {
            $table->integer('company_edit_flg')->after('company_store_flg');
            $table->integer('company_update_flg')->after('company_edit_flg');
            $table->integer('company_delete_flg')->after('company_update_flg');
        });
        Schema::table('companies', function (Blueprint $table) {
            $table->dropColumn('book_index_flg');
            $table->dropColumn('book_create_flg');
            $table->dropColumn('book_store_flg');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('companies', function (Blueprint $table) {
            $table->integer('book_index_flg')->after('company_store_flg');
            $table->integer('book_create_flg')->after('book_index_flg');
            $table->integer('book_store_flg')->after('book_create_flg');
        });
        Schema::table('companies', function (Blueprint $table) {
            $table->dropColumn('company_edit_flg');
            $table->dropColumn('company_update_flg');
            $table->dropColumn('company_delete_flg');
        });
    }
}

上記のようにカラム追加・削除のSchema::tableを記述するだけです。

upにはカラム追加・削除のSchema::tableを書きます。

そして、downにはrollbackした時の処理を書くので、Schema::tableの1つ目はbook_index_flgたちを追加し、Schema::table2つ目には追加したcompany_edit_flgたちを削除します。

Contents

【まとめ】カラムの追加と削除を同じマイグレーションファイルで行う

一つのマイグレーションファイルでカラムを追加・削除する方法を解説しました。

ぜひ身につけて、マイグレーションに強くなってくださいね!

このブログでは他にも実務で役立つLaravelの記事を書いているので、ぜひ合わせてチェックしてください。

20代の転職ならマイナビジョブ

現役エンジニアに相談するならMENTA(おすすめ)

スキルを売り買いするならココナラ

動画教材ならUdemy

コメント

コメントする

CAPTCHA


Contents
閉じる