rake コマンド マイグレーションファイルの管理

ターミナルでDBにテーブル作ったり、カラム編集したりするときのrakeコマンドを覚えられていない。だから使いこなせていない。こういうのよくない。

 

マイグレーションファイルの管理に使うrakeコマンドをまとめる。

 

 ①

 rake db:migrate

 

マイグレーションファイルを読み込む。一番お世話になります。

 

 ②

 rake db:migrate:status

 

 これ使わないとなー。マイグレーションファイルの実行状況を確認する。

読み込まれたものは「UP」 読み込まれていないものは「down」と表示される。

 

 ③

 rake db:rollback

 

最新の読み込んだマイグレーションファイルを巻き戻す。upだったものをdownの状態に戻す。

このdownの状態だと、最新のマイグレーションファイルが更新される前のDB状態に戻る。例えばカラムを追加するマイグレーションファイルを読み込んだけれど、やっぱ追加をやめたい。rollbackで巻き戻せばカラムを追加したのがリセットされて変更可能になるので、downのマイグレーションファイルを削除しても良い。

晴れてターミナルでrmコマンドを実行できるようになる。

 

 rm db/migrate/20190511211258_add_hogehoge.rb

 

 

 rake db:migrate:down VERSION=20190511211258(指定するmigration ID)

 

Versionを指定してマイグレーションファイルをdownの状態にする。これでいくつか前にDBに反映させてしまったものをやり直せる。これでdown状態にしたら、removeコマンドを実行すればOK

 rm db/migrate/20190511211258_add_hogehoge.rb

 

 

⑤rollbackを数ステップかけて、過去のマイグレーションファイルを削除する方法があるが、他のものもdownにするとカラム情報が失われたりするので推奨されていない。

 

 rake db:rollback STEP=2

 

これで最新から二つ分のマイグレーションファイルがdownの状態になる。あとはremoveコマンドをすれば指定したファイルは削除される。

 

 

以上でした。

 

<参考URL> ありがとうございました。

https://joppot.info/2014/10/14/2073