xengineer’s diary

結果、メモ的な内容になっています。

railsのmigration状況を確認する

railsで、dbをロールバックしたいときに、よく、現状どうなってんだっけ? と思うので、そんなときに使ってるコマンド。

$ rake db:migrate:status
database: /Users/xxxxxxx/yyyyyyy/db/development.sqlite3

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20140601010547  Devise create users
   up     20140601094433  Add name to users
   up     20150510130754  Add attachment image to users
   up     20150530030714  ********** NO FILE **********
  down    20150530152930  Add due date to xxxxxx

ん?NO FILEってなんだろう? と、最初思ったんだけど、これはどうやら他のbranchであてたmigration fileで、 今別branchにいるので、NO FILEってことらしい。 なるほど。

では今回は、2個前に戻りたいので、↓↓で書いたとおりのコマンドを実行してみる。

rails db:rollbackでDatabaseをロールバックする - xengineer’s diary

$ rake db:rollback STEP=2
$ rake db:migrate:status
database: /Users/xxxxxxx/yyyyyyy/db/development.sqlite3

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20140601010547  Devise create users
   up     20140601094433  Add name to users
   up     20150510130754  Add attachment image to users
   up     20150530030714  ********** NO FILE **********
  down    20150530152930  Add due date to xxxxxx

あれ?全然変わってない・・・ ぬぐぐ・・・じゃあmigrationファイル書き直して、 ↓↓で書いたみたいに、最初から migrationし直してしまおう・・・

db:migrateを最初からやり直したい! - xengineer’s diary

$ rake db:migrate:reset
$ rake db:migrate:status
database: /Users/xxxxxxx/yyyyyyy/db/development.sqlite3

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20140601010547  Devise create users
   up     20140601094433  Add name to users
   up     20150510130754  Add attachment image to users
   up     20150530152930  Add due date to xxxxxx

おー。よしよし。NO FILE消えたし、ちゃんとあたってる。 そして、db/schema.rbも更新されてるのでよさげ。

タイトルの趣旨とは違うところまできてしまったけども、よいでしょう。