特定の移行をロールバックするにはどうすればいいですか? 質問する

特定の移行をロールバックするにはどうすればいいですか? 質問する

私が持っています移行ファイル db\migrate\20100905201547_create_blocks.rb

その移行ファイルを具体的にロールバックするにはどうすればいいでしょうか?

ベストアンサー1

rake db:rollback STEP=1

ロールバックする移行が最後に適用されたものである場合、これを行う方法があります。 戻りたい移行の数に応じて 1 を代入できます。

例えば:

rake db:rollback STEP=5

後で発生したすべての移行 (4、3、2、および 1) もロールバックします。

すべての移行をターゲット移行までロールバックするには、次のコマンドを使用します。(この修正されたコマンドは、元の投稿のエラーを指摘するすべてのコメントの後に追加されました)

rake db:migrate VERSION=20100905201547

特定の移行を1 つだけ(順序どおりに)ロールバックするには、次を使用します。

rake db:migrate:down VERSION=20100905201547

または

rails db:migrate:down VERSION=20100905201547

これによって、途中の移行はロールバックされず、リストされている移行のみがロールバックされることに注意してください。これが意図したものではない場合は、安全に実行することができ、rake db:migrateその移行のみが再実行され、以前にロールバックされていない他の移行はスキップされます。

また、単一の移行を順序どおりに移行しない場合は、その逆も存在しますdb:migrate:up

rake db:migrate:up VERSION=20100905201547

おすすめ記事