php artisan:migrate 追加とロールバック(Laravel)

migrationファイルには、バージョン管理の役割もある。
後から列の追加や削除も可能
※チーム開発で威力を発揮する

テーブルにtitle列を追加するため、追加用のmigrationファイルを作成

php artisan make:migration add_title_to_contact_forms_table

作成用ではcreateから始まるが、追加用はaddから始まる。
先頭に作成日時。 バージョン管理がされている。



追加したい内容を、migrationファイルに設定

up()に追加していく。

  • 今回は、以下の設定をした。
    • 型はstring
    • 文字制限は50
    • title列を追加(name列の後ろ)
$table->string('title',50)->after('name');



履歴管理をするために、down()も作成

やっぱり削除したい!となった場合に、ロールバックできるよう、down()に以下を追記

$table->dropColumn('title');



ロールバック関連コマンド

// 1つ戻す
php artisan migrate:rollback
// 2つ戻す
php artisan migrate:rollback --step=2
// 順番にロールバックして再実行(downして再実行)
php artisan migrate:refresh
// テーブル全削除して再実行(down意識することなく、再実行)
php artisan migrate:fresh
// 履歴確認
php artisan migrate:status



まとめ

実際の運用では、こまめに履歴管理をしてないところもある。
migrate:freshで一括でテーブルを全て作り直しなどもある(らしい?)
現場によって違うので、様々な管理の方法があることを知っておくとよい。