Laravel

Laravelのマイグレーションのafterの順序を見やすくする方法

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

⇨ Laravel 記事の目次はこちら

Laravel のマイグレーションの after を使うと、自分の思ったカラム順序にしづらいことがあるので、見やすくする方法について書いてみました。

[関連記事]Laravel でデータベースを作成する方法(マイグレーション)

マイグレーションの after とは?

特定のカラムの後に、カラムを追加することができます

Schema::table('posts', function (Blueprint $table) {
    $table->string('name')->after('id');
});

posts テーブルの id のあとに name カラムを入れたいときは、このようにマイグレーションファイルに書くことができます。

課題点

カラムを複数追加したい時などに、思った順番にしずらいです。

例えば、

①name
②title
③photo

の順番に入力したいとしましょう。

そのとき、

Schema::table('posts', function (Blueprint $table) {
    $table->string('name')->after('id'); //1
    $table->string('title')->after('id'); //2
    $table->string('photo')->after('id'); //3
});

と記述すると、③②① の順番でカラムが追加されてしまいます。

解決方法

逆から書く!笑

Schema::table('posts', function (Blueprint $table) {
    $table->string('photo')->after('id'); //3
    $table->string('title')->after('id'); //2
    $table->string('name')->after('id'); //1
});

マイグレーションのカラム追加処処理が上から実行されるので、最初に書いたカラムが押し出されてどんどん右側に追いやられるという感じです。

ゴリ押しです。

Laravel で定期実行(スケジューラー)を設定する方法

Laravel の make:command はどんな時に使うのか?

まとめ

以上です。ちゃんと考えた結果これで落ち着いています。

もっと良い方法あればぜひ教えてください。

感想・苦情は TwitterDM にご連絡ください。

それでは!

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

【laravel-breadcrumbs】Laravel でパンくずリストを実装する