1

プロジェクトにMigrator.netを実装しており、現在のスキーマからテーブルを削除しています。私のUp()単に含まれていますDatabase.RemoveTable("FooTable")。しかし、今、私は自分のために何をすべきかについて少し途方に暮れていますDown(). 上の変更について、過去のすべての移行を手動で解析する必要がありFooTableますか? のFooTableで以前のすべての移行を実行する方法はありDown()ますか?

4

2 に答える 2

3

データはどうですか?50,000 行があった場合、空のテーブルを再作成しても、以前の状態にはロールバックされません。

データを使用してデータベースのダウングレードを有効にするには、次のことを行う必要があります。

  1. Up() で、データ モデルからテーブルを切り離し (FK をドロップするなど)、名前を DeleteMe_FooTable などに変更します。ただし、実際には落とさないでください。
  2. Down() で、データ モデルに再アタッチします。名前を元の名前に変更し、FK を復元します。
  3. デプロイから数日または数週間後、ロールバックしないことが 100% 保証されていることがわかったら、DBA はテーブルを手動で削除できます。
于 2011-08-22T09:03:01.370 に答える
0

アイデアは、メソッドDown()の効果を逆にするということです。Up()技術的には、実行しUp()Down()直後にデータベーススキーマが元の場所に戻るということです。

あなたの場合、あなたのテーブルを再作成する必要がありますDown()

于 2011-04-14T16:14:15.983 に答える