3

同じデータベースを対象とする 2 つの SSDT プロジェクトがあります。いずれかのプロジェクトからスキーマ比較機能を使用すると、他のプロジェクトのオブジェクトが存在しないものとして検出され、削除対象として設定されます。

DAC API を使用しているため、2 つのプロジェクトを 1 つにマージすることはできません。一方を他方より先にコンパイルする必要がある場合があります。「依存」プロジェクトのオブジェクトはすべて同じ db スキーマ (と呼びましょうmyschema) にあり、これは「コア」プロジェクトからは不明です。

「コア」プロジェクトを比較するときに、内部にあるすべてのものを無視するように SCMP ファイルをセットアップする方法はありますmyschemaか?

4

1 に答える 1

1

そうではありませんが、私が行った最善の方法は、不要なものを除外し、SCMP を保存してプロジェクトに追加することです。そのスキーマに他のオブジェクトを追加すると、それらは除外されません (scmp を調べると、除外がどのように行われるかがわかります)。

個人的には、スキーマ比較を使用することはめったにありません。開発者データベースへのデプロイを自動化し、それを使用して、プロジェクトの一部をデプロイするよりも、常にプロジェクトと同期させる方が良いです。私のプロセスは基本的に次のとおりです。

  • SSDT でコードを書く
  • すべての依存プロジェクトを開発データベースにプッシュする
  • テスト
  • チェックイン
  • CI システムは、プロジェクト、テストなどをビルドおよびデプロイします
  • CI システムは、他の環境用のスクリプトを構築 / 展開します

エド

于 2015-12-01T08:52:55.340 に答える