2017-10-11 4 views
1

環境はTFS SQLプロジェクト

  • SQL Serverの一部であるデータベースとtSQLtフレームワークを実装します。

  • TFSのデプロイヤは、私は私のデータベースのためのTFS SQLプロジェクトを持っている

シナリオ

  • 構築し、それぞれのデータベースにSQLファイルを展開します。 TFS SQL Projectで変更を加え、TFSビルドを使用してこれらの変更を展開します。

  • TFSビルドは、 データベースとTFS SQL Project.TFSビルドを比較することによって、差分スクリプトを生成します。環境固有のスクリプトを生成します。

  • オブジェクトがデータベースに存在しますが、SQLプロジェクトに存在しない場合は基本的に、それはは文を作成して生成し、オブジェクトがデータベースに存在するが、SQLプロジェクトに不足している場合、それは 生成されます。 ドロップ文

問題

  • 私はのtSQLtフレームワークを私のデータベースに実装したいと思います。上記のシナリオを検討することで、私たちができるベストプラクティスは何でしょうか?

  • 基本的に、SQLプロジェクトでオブジェクトを作成する場合は、これらのtsqltオブジェクトをPRODまで展開します。どちらが良い練習ではありませんか?

+0

TFS SQLまたはSSDTプロジェクト(ビジュアルスタジオのシンプルなデータベースプロジェクト)についてお話ししていますか?私はTFS SQLが何を意味するのかよくわかりません... –

+0

これはSSDTプロジェクト(Visual Studioでデータベースプロジェクト)です。 –

+0

@datacentricityは正しい答えをすでに得ました –

答えて

2

tSQLtフレームワークまたは関連付けられた単体テストを実稼働環境に展開しないでください。

あなたが探している解決策は複合プロジェクトです。おそらくあなたのソリューションには、すでにMyDbというコードがすべて入ったデータベースプロジェクトがあります。同じソリューションに別のデータベースプロジェクトを追加する必要があります。名前は重要ではありませんが、このMyDb.testsを呼び出すことができます。この2番目のデータベースは、tSQLtフレームワークとすべてのテストを保持します。これは、ステップバイステップの非常に速いです:

  1. がサンドボックス上MyDb.testsと呼ばれる空のデータベースを作成し、Visual Studioでこのデータベース
  2. にtSQLtフレームワーク を追加し、MyDb.testsからtSQLtオブジェクトをインポートソリューションの新しいMyDb.testsデータベースプロジェクト に追加します。あるいは、 は、tSQLtデータベースのdacpacを作成し、それを参照することができます。 個人的には、インポートするときに、私は通常 スキーマでオブジェクトをグループ化することを選択します。そうすることで、プロジェクトをテストクラスでうまく並べ替えます。
  3. まだVisual Studioで、MyDb.testsに "master"へのデータベース参照を追加し、ソリューション内のMyDbデータベース プロジェクトに別のデータベース参照を追加します。同一のサーバーを指定してください(同じ データベース)。に続き、MyDb.testsにテストを追加し始め、MyDbに生産コードを書き出します。
  4. MyDb.Testsをサンドボックスにビルドまたは公開すると、得られる データベースには、tSQLtフレームワーク、テスト、およびMyDbの オブジェクトとコードがすべて含まれます。
  5. MyDb.testsでは、tSQLt.RunAllへの呼び出しを含む の展開後スクリプトを追加して、MyDb.testsプロジェクトを再公開するたびにすべてのテストが で実行されるようにすることもできます。

UDAまたはプロダクションをテストするためにデプロイすると、MyDbプロジェクトからビルドして公開するだけで、tSQLtフレームワークまたはテストは含まれません。

これより、それまでもう少しあります - あなたはSSMSで開発することを好む場合は特に当時のVisual Studioにではなく、ここで、あなたのオブジェクトをインポート助けるかもしれないリンクのカップルです:

https://kzhendev.wordpress.com/2014/01/08/setting-up-ssdt-database-projects-and-tsqlt/

は、

https://www.red-gate.com/simple-talk/sql/sql-tools/sql-server-data-tools-ssdt-and-database-references/

+0

ありがとう! –

関連する問題