Laravel
Laravelのマイグレーションのafterの順序を見やすくする方法
いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。
オススメ本
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 の make:command はどんな時に使うのか?
まとめ
以上です。ちゃんと考えた結果これで落ち着いています。
もっと良い方法あればぜひ教えてください。
感想・苦情は TwitterDM にご連絡ください。
それでは!
人気記事