16

EF 5.0を使用していますが、コードベースの移行の使用を開始したいと思います

私は流暢な移行者を使用しましたが、移行順序の概念があります。データベースの移行バージョンに関係なく、移行は移行/ロールバックできます。

Entity Frameworkにも同様の機能がありますか?

私は、データベースのバージョンごとに複数の移行実装を維持することを計画していました(最初はスプリント番号に関連付けられている可能性があります)。

なぜこれが欲しいのですか?

継続的インテグレーションにより、環境ごとにデータベースが移行されます。Devビルドは「遅れている」バージョンが1つしかない可能性がありますが、QAまたはPROD環境に移動すると、データベースは複数の移行によって遅れます。

たぶん私はこれを間違った方法で行っているのかもしれません。その場合、CIで移行を行うための最良の方法についての意見を聞きたいと思います。

4

1 に答える 1

19

はい、EFにはこの機能があります。

実行Add-Migrationすると、移行ファイルの先頭にタイムスタンプが付いていることがわかります。これは、自動移行が常に無効になっていると仮定して、順序を決定するものです。

明示的な移行と自動移行を組み合わせて使用​​している場合、移行で生成されたファイルに追加Sourceのプロパティがあることに気付くかもしれません。.resxこれは、EF が明示的な移行を実行する前に、自動移行を実行する必要があるかどうかを判断する方法です。

私の経験から、次のガイドラインを学びました。

1) 自動移行を使用しないでください。

2) チームのすべての開発者は、新しい明示的な移行を作成する前に、最新のコードを持っていることを確認する必要があります。当たり前のことですが、古いコードから移行を作成すると問題が発生します。

3) 開発者は、移行のメソッドにカスタム SQL を記述する場合は、適切なコードを記述 (およびテスト) して、メソッドUp()の変更を元に戻すようにする必要があります。Down()

于 2013-04-25T21:51:07.043 に答える