2012-04-24 10 views
13

バージョン管理では、データベーススキーマについては常に問題があります。Entity Frameworkコードを使用したDVCSプロジェクトの最初の移行

私は現在、Entity Frameworkコードの最初の移行を評価中です。これまでのところ、私は本当に感心しています。

私の質問は、DVCSを使用しているチームで誰かがマイグレーションを使用した経験がありますか?

異なるブランチで作業している開発者がそれぞれ独自のマイグレーションを作成している場合、ブランチをマージすると 'Update-Database'ツールがうまく対応しますか?

私は、新しいマイグレーションがリストの真ん中に現れると思います。これは拾い上げられるのでしょうか、それとも、最後に導入されたものよりも「新しい」移行を探していますか?

チームは、競合するスキーマの変更を作成しないように気をつけなければならないことに感謝します。これは管理できるものですが、 'Update-Database'マイグレーション?

おかげで、 - クリス

+2

これで結論に達しましたか? – sirrocco

答えて

1

私が話題に見つけることができる1 blog postによると、並行開発は、関係なく、VCSツールの、EFのデータベースマイグレーションの現在の状態と問題があるようです。シナリオをデータベースの状態をどのように追跡するかによって、シナリオを処理する方法はありません。 Pawelは問題を表示するためにexample project on GitHubを提供します。

データベース移行を処理するために、独立したツールを使用するほうがずっと良いかもしれません。私はMigrator.NETを大いに成功させて使用しており、並列開発者のスキーマの変更を適切に処理します。また、データベース「バージョン」を追跡する比較的ローテクな方法を使用しています。これは、あなたとあなたのチームがマイグレーションクラス以外の誰もデータベースに触れることのない日を決定する限り、驚くほど効果的ですデータベースのv1)。

+0

[FluentMigrator](http://nuget.org/packages/FluentMigrator)もご覧ください。 Migrator.NETは古くなってしまい、このプロジェクトには多くの類似点があります。私は昨晩それを解雇し、既存のMigrator.NET移行クラスを使用する方法もあります。 – Sumo

0

私はそれが動作するとは思わないし、周りに道があるとは思わない。

詳細はthis blog postを参照してください。

マイグレーションを管理するために、別のツールを使用することをお勧めします。

1

この記事の解決方法が役立つかもしれません。他の開発者からの変更を無視する、ブランクの移行を作成するための追加の手順を実行します。これにより、データベースと同期するスナップショットが更新されます。

http://msdn.microsoft.com/en-us/data/dn481501.aspx

関連する問題