1

2人以上の開発者でEF移行を使用すると、いくつかの競合が発生します。これらの問題を解決するために私たちが最終的に得たものよりも優れた解決策を誰かが持っているかどうか私は興味があります。まず、シナリオは次のとおりです。

2人の開発者、Dev1とDev2:

問題:

  1. Dev1とDev2はどちらも、アプリケーションの作業コピーで同時にモデルを変更します。
  2. Dev1とDev2はどちらも移行を作成し(add-migration)、ローカルデータベースを更新してテストできるようにします(update-database)。
  3. Dev1は終了し、最初にコードをチェックインします。
  4. Dev2はDev1からコードをチェックアウトし、update-databaseを実行します。
  5. Dev2は、未解決の変更があるというエラーを受け取ります。これらの「未解決の」変更は、以前は彼自身の移行で適用された変更ですが、実際には変更がすでに適用されている場合でも、Dev1の移行を適用した後は考慮されません。Dev1の移行を適用した結果、これらの変更が適用されなかったと考えて、モデルの検証が混乱しているようです。

私たちのソリューション: Dev2は新しい移行を作成し、Up()メソッドとDown()メソッドを空にしてから、update-databaseを実行します。これにより、すべてが再び同期されます。

このソリューションは機能しますが、モデルハッシュを同期に戻す以外の目的がない多くの空の移行が発生します。誰かが同様の問題を抱えていて、それらを回避する別の方法を見つけましたか?または、データベースの移行を誤って使用していますか?

4

0 に答える 0