次の開発サイクルを使用して、新しい開発のために VS2010 データベース プロジェクトを試しています。
- Management Studio を使用してローカル DB インスタンスに変更を加えます (デザイナーなどを使用)
- VS2010 スキーマ比較を使用して、これらの変更を VSDB プロジェクトに同期/インポートします
- VSDB プロジェクトをチェックインし、自動化されたビルド/テストなどを実行します
ソース管理から「最新のものを取得」したいときは、次のようにします。
- ソース管理から VSDB プロジェクト ファイルを更新する
- スキーマ比較を使用して、変更をプロジェクトからローカル データベース インスタンスにプッシュする
これが故障の始まりです... スキーマ比較は2 つのバージョンを同期しようとしているため、独自の機能開発の一環としてローカル データベースに加えた変更を元に戻そうとします。
明らかに、変更したオブジェクトへの変更をスキップするようにスキーマ比較を指示できますが、残念ながら、これは常に正しく機能するとは限りません。compare-behavior-sql-2008-database-projects .
基本的に、VSDB プロジェクトの定義がローカル データベースと自動的に同期されないため、問題が発生します。したがって、スキーマ比較を使用して、変更を取得するたびに「貧しい人々 のマージ」を行う必要があります。
考えられる解決策の 1 つは、次のとおりです。
- スキーマ比較を使用して、最初にローカル DB から VSDB プロジェクトに変更を同期します
- ソース管理から VSDB プロジェクトを更新します (したがって、スキーマ比較ではなく、ソース管理ツールを使用してマージを行います)。
- スキーマ ソース管理からローカル DB インスタンスへの変更を比較する
...これは理想とはかけ離れています。
この点で、RedGate SQL ソース管理の方が優れていますか?
新しい 'Juneau' SQL ツールセットはどうですか?