28

EFプロジェクトでは、設定するベストプラクティスはありますかAutomaticMigrationsEnabledAutomaticMigrationsEnabled falseまたはtrue?

より宣言:私たちは通常、パッケージマネージャコンソールの「アドオンの移行」と「更新databse」コマンドを実行してモデルを変更した後、私たちのチームで

たびに、これはCheck Inプロジェクト全体や他の人が修正さGETに持つべき最初の修飾が起こる

は「それが使用されているため、データベースを削除できません」:他の開発者がプロ​​ジェクトを実行すると、このエラーが発生させますオブジェクト。多くの場合、既に作成されたモデルと移行をチェックインしたくありません。

この状況は厄介です。この種の問題の解決方法はありますか?ありがとうございます。

答えて

41

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

データベースのバージョンを知る必要があるバージョン管理を使用する予定がなく、ダウングレードを使用する予定がない場合は、単に自動移行を使用できます。あなたが共有データベース=ショーストッパーに取り組んでいるように見えます

「が使用中のため、データベースを削除できません」。各開発者は、自分のデータベースを使用する必要があります。

ただし、すでに作成されているモデルと移行をチェックアウトする必要はありません。

これはベストプラクティスであり、コードベースの移行を続行したい場合は、それに従わなければなりません。 Btw。継続的な統合では、コミットが成功してテストに合格した直後にを取得し、を取得する必要があります。

+0

ありがとうございます。私たちは共有DBを作成しています。独自のデータベースをどのように使い始めることができるか教えてください。(テキスト、記事、書籍、...どんなアドバイスをいただければ幸いですか?) –

+4

お探しのアドバイスはありますか?データベースサーバーをローカルにインストールするか、共有サーバー上の開発者ごとにDBを使用するだけです。前者の場合、接続文字列の 'Data Source'をローカルマシンに変更するだけで、すべての開発者は同じ名前のデータベースを持ちます。後者の場合、開発者ごとの接続文字列が必要です。開発者固有の接続文字列をソース管理に保存しないように、チェックインポリシーを確保する必要があります。 –

+0

共有データベースは必要ありません。 **データソース=(ローカル)**を設定します –

10

から:http://msdn.microsoft.com/en-us/data/jj554735.aspx

チーム環境のための勧告

あなたは自動とコードベースの移行をまき散らすことができますが、これは チーム開発シナリオではお勧めできません。ソース管理を使用する開発者チーム に参加している場合は、 純粋に自動移行または純粋にコードベースの移行を使用する必要があります。自動移行の制限が の場合、チーム環境でコードベースの の移行を使用することをお勧めします。

関連する問題