web-dev-qa-db-ja.com

AutomaticMigrationsEnabled falseまたはtrue?

EFプロジェクトでは、AutomaticMigrationsEnabledを設定するためのベストプラクティスはありますか?

より多くの宣言:

モデルを変更した後、チームでは通常、パッケージマネージャーコンソールで「add-migration」および「update-databse」コマンドを実行します。他の開発者がプロ​​ジェクトを実行すると、このエラーが発生します。

「データベースは使用中のため削除できません」

これが起こるたびに、最初の修飾子はCheck Inプロジェクト全体と他のユーザーがGET変更されたオブジェクトを使用する必要があります。多くの場合、すでに作成されたモデルと移行をチェックインしたくないです!

この状況は迷惑ですが、この種の問題の解決策はありますか。前もって感謝します。

31
Vahid Hassani

自動移行はすべての魔法を行いますが、厳密なバージョン管理は許可されません(各バージョンに特別な固定移行はありません)。厳密なバージョン管理がないと、データベースのバージョンを追跡できず、明示的なアップグレードを実行できません(ダウングレードをまったく実行できません)。

データベースのバージョンを知る必要がある場合にバージョン管理を使用する予定がない場合、およびダウングレードを使用する予定がない場合は、単純に自動移行を使用できます。

「データベースは使用中のため削除できません」

共有データベース=ショーストッパーで作業しているようです。各開発者は、独自のデータベースを使用する必要があります。

既に作成されたモデルと移行をチェックアウトしたくない!

これはベストプラクティスであり、コードベースの移行を続行する場合は、それに従う必要があります。ところで「継続的インテグレーション」と呼ばれるプラクティスがあります-継続的インテグレーションでは、コミットが正常にビルドされテストに合格した直後にgetを実行する必要があります。

46
Ladislav Mrnka

From: http://msdn.Microsoft.com/en-us/data/jj554735.aspx

チーム環境の推奨事項

自動およびコードベースの移行を散在させることができますが、これはチーム開発シナリオでは推奨されません。ソース管理を使用する開発者チームの一部である場合は、純粋に自動の移行または純粋にコードベースの移行を使用する必要があります。自動移行の制限を考えると、チーム環境でコードベースの移行を使用することをお勧めします。

12
Larry S