一度 DROP TABLE したテーブルを再び migrate する
DROP TABLE は表構造ごと完全削除します。そのため,再びテーブルが必要になった場合はもう一度 migrate を実行する必要があります。
しかし,そのままでは migrate できないので以下に対処法を紹介します。
試しに DROP TABLE してみる。
mysql> USE mydb;
mysql> DROP TABLE my_table;
テーブルが消えた状態で migrate を実行しようとすると,migrate するものがないと言われてしまいます。
> php artisan migrate
Nothing to migrate.
migrations テーブルから, DROP したテーブルの id を確認します。
mysql> SELECT * FROM migrations;
該当するレコードを削除します。
Laravelでは migrations テーブルでマイグレーションの実行履歴を管理しています。
既にテーブルを削除していても,この履歴を消さない限り migrate は実行されません。
mysql> DELETE FROM migrations WHERE id='20';
履歴を削除したので migrate を実行します。
> php artisan migrate
無事にテーブルが作成されました。