
あきぞらです。
Laravelでマイグレーションをしていて、ロールバックをしたいときがあります。
そのとき、ロールバックをしたあとにもう一回実行しようとすると、エラーになることがあります。
そのエラーを未然に防ぐ方法を書いていきます。
マイグレーションファイルのdown()はしっかり書こう
たとえば、up() をこんな感じに書いていたとします。
public function up()
{
Schema::table('books', function (Blueprint $table) {
$table->timestamp('publish_date');
});
}
しかし、down()の関数もしっかり書いていないと、
マイグレーションをロールバックしてもう一回実行したときにエラーになってしまいます。
なぜかと言うと、すでに作ってしまったカラムが消えていないからです。
down()のほうにしっかり作ってしまったカラムを削除する処理をいれておきましょう。
public function down()
{
Schema::table('books', function (Blueprint $table) {
$table->dropColumn('publish_date');
});
}