1

mig1 と mig2 の 2 つの移行がある場合、rake db:migrate を実行し、次に mig1 に戻って列のデフォルト値を変更します。rake db:migrate を再度実行すると、この変更は反映されますか? または、その列だけを変更するには、新しい移行を行う必要がありますか?

4

3 に答える 3

2

次のコマンドを実行して、特定の VERSION をやり直すことができます。

rake db:migrate:down VERSION=___________

rake db:migrate:up VERSION=____________
于 2010-08-05T21:15:00.217 に答える
1

新しい移行を行うか、rakedb:rollbackタスクを使用して、問題の移行が実行される前のバージョンのデータベースに戻す必要があります。移行スクリプトへの変更は、自動的には反映されません。

スキーマの現在のバージョンが追跡され、移行に適用されるため、 rake db:migrate を実行しても古い移行は再実行されません。このため、移行時に正しい方法rollbackを提供している限り、この機能を使用できます。self.downロールバックすると、これらのダウン メソッドが実行され、進行中の移行が元に戻されます。

その後、移行を編集して再移行できます。

于 2010-08-05T19:45:55.583 に答える
0

rake db:migrate:redo VERSION= _ _ _

于 2010-12-30T15:21:53.230 に答える