#初めに
入社してから与えられた課題で、特定のマイグレーション以外をロールバックして、修正、特定のマイグレーション以外を再び実行するという操作をしたくなったのですが、なかなか情報が見つからず、たくさんのサイトを見て得た情報と最終的に見つけた自己流の解決策を紹介します。
#マイグレーションは連続的なものであるという前提
いざというときにLaravelがデータを安全にロールバックできるようにするための仕組みがマイグレーションというものらしいです。
だから、マイグレーションはそれらが作成された順にひとつずつ実行しています。
この前提から特定のマイグレーションだけを実行することは邪道なのではという疑念を抱きつつ、解決策へ、、、
#解決策
###特定のマイグレーションだけをマイグレートする
php artisan migrate:refresh
を応用して使います。
マイグレーションを指定したファイルから1つだけマイグレートする
php artisan migrate:refresh --step=1 --path=/database/migrations/ファイル名
step=○の数字を変えることで、マイグレートするファイルの数を変更できます。
###特定のマイグレーションだけをロールバックする
コメントアウトを使います。
public function up()
{
Schema::create('flights', function (Blueprint $table) {
#$table->increments('id');
#$table->string('name');
#$table->string('airline');
#$table->timestamps();
});
}
public function down()
{
#Schema::drop('flights');
}
ロールバックしたくないファイルを上記のようにコメントアウトし、ロールバックすると、このファイルが無視されます。