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も更新されてるのでよさげ。
タイトルの趣旨とは違うところまできてしまったけども、よいでしょう。