2017-05-05 5 views
0

Newb、私の最初のサイトpostgres。私は移行をロールバックしてから、別の移行を行いました。私は2番目の移行を空にし、rails db:migratedを残しました。マイグレーションをロールバックした結果

すべては正常だと思われますが、悪い移行はまだそこにありますが、特に気に入らないのです。私が続けると、結果がどうなるのか不思議です。

EDIT:マイグレーションをロールバックすると、他の人がプルダウンすると、マイグレーションが自然に行われ、次のマイグレーションが混乱しますか?

答えて

1

新しいアプリケーションで、現時点でローカルマシンのみで開発している場合は(特に単独で開発している場合は)、移行をロールバックします(DB内のデータとして、その時点でshouldnそれを紛失しても害はないはずです。個人的には、開発の時点で不要な、または間違った/壊れた移行ファイルを持っていない方がいいです)、破損した移行ファイルを削除し、適切な移行を実行して実行しますdb:migrateしてgitに変更をpushします。 だから、(レール5): レールD移行MigrationYouWishToDestroy レールデシベル:あなたはチームで開発している(と以前の移行がすでにレポにプッシュされていた)、および/または「あなたができるデータで作業している場合

を移行ロールバックを介して失う余裕がない場合は、以前のマイグレーション(悪いもの)を効果的に元に戻す新しいマイグレーションを作成する必要があります。そうすれば、あなたの同僚はdb:migrateを実行する必要があります。変更を取り込んだら、それはそれだけです。それ以外の場合は、dbをロールバックしてからdbを実行する必要があります。

+0

だから、もし私がそれをロールバックすると、私は前にロールバックした失敗したマイグレーションを破壊してから、新しいマイグレーションを正常に行うことができます。どの移行を現在行っているかをどのようにして知ることができますか? ...のように、ロールバックしている場合、最後に移行された移行がどれであるかを知る方法はありますか? – fdsaevad

+0

正しい。 db:rollback STEP = xここで、xはロールバックするマイグレーションの数です。そうすることで、どれだけの移行が遅れているかを知ることができ、どの移行が最後に移行されたのかを知ることができます。 –

+0

私はあなたの助けに感謝します!私は失敗した移行をロールバックしようとしています。移行を試みるときにエラーが発生します。この時点からI db:rollback STEP = 2を指定すると(その前の1つにジャンプする)、失敗した移行はスキップされますか? – fdsaevad

関連する問題