副業におすすめなサイトを見る→

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

アプリリリースのお知らせ

予定を探すアプリyoteipickerをリリースしました。

アプリの利用用途:暇だから何か予定入れたいけど今週の土日は何しようかな〜?ってときに使えるアプリです。

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の記事を書いているので、ぜひ合わせてチェックしてください。

>>ココナラと似てるおすすめの副業サイトを確認する

>>リモートワークもあるおすすめの転職サイトを確認する

休日で空いた時間の暇つぶしを探せるアプリを公開しています。

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

コメント

コメントする

CAPTCHA


Contents
閉じる