2

ここにいる全員が無事であることを願っています。

VS 2008 を開発ツールとして、TFS 2008 をバージョン管理とビルドの自動化として使用しています。データベースの変更に dbpro を使用する開発者もいれば、SQL Server 管理スタジオを使用する開発者もいます。

C# と VB.Net を使用してビルドされた Web アプリケーションのビルドを自動化しようとしています。私たちのシナリオは、Web アプリケーションが接続する中央データベースがあるようなものです。

クライアントに新しい機能やバグ修正を提供するときはいつでも、インクリメンタル ビルドを提供します。

SQL スクリプトは、中央の DB サーバーで変更を行ってテストしたときに、増分ビルドごとにソース管理にチェックインされます。

クライアントで増分更新スクリプトとして実行できる差分スクリプトを生成したいと考えています。これからが問題です。開発者がデータベースの変更セットを忘れがちで、ソース管理のスクリプトに SP が 1 つか 2 つ欠けていることがあります。

また、テスト値ではなく厳密な値を持つ一部のテーブルにデフォルト データを挿入する必要がある場合もあります。パネルによって提供されるサービスを含むテーブルのように、新しいサービス名、署名、資格情報、サービス アドレスなどServiceTableに追加します。これに加えて、他の多くのテーブルには、必要のないテスト データが含まれている場合があります。

DataCompare を使用すると、必要なデータ (クライアントが特定のサービスを有効にするために重要) と、機能またはバグ修正のテストの結果としてデータベースに追加されたテスト データの変更セットが生成されます。

現在、TFS 2008 のビルド定義の TFSBuild.proj ファイルでSQLSchemaCompareTask (Visual Studio 2008 Team Database Professional Power Tools API から) を使用しています。

SQLSchemaCompareTask を使用すると、生成されたスクリプトには [dbo] などのデータベース名が含まれます。アプリケーションのバックエンドとして SQL Server 2000 データベース (一部のクライアントはまだ SQL Server 2000 を使用しています) データベースに対して実行するとスクリプトが失敗するため、これらは望ましくありません。

また、このプロセスではデフォルト データを生成できません。

この問題を克服するには、データベースを比較して、クライアントに送信する前に手動で再確認する必要のないスクリプトを自動的に生成できるソリューションを考え出す必要があります。

このような SQL スクリプト生成の効果的な方法論を提案し、2 つの異なるデータベースを使用できるかどうかを提案してください。SQL Server データベースのビルドの自動化を可能にするツールキットまたは API はありますか?

皆さん、ありがとうございました。

よろしく

スティーブ

4

2 に答える 2

1

これには SQL Examiner Suite を使用してみてください: http://www.sqlaccessories.com/SQL_Examiner_Suite/

このツールは、スキーマとデータの両方を比較し、同期スクリプト (または差分スクリプト) を生成します。提供されているコマンドライン ツールを使用して、スクリプトの作成を自動化できます。

于 2010-06-22T19:39:38.670 に答える
1

多くの個々の変更セット スクリプトを照合する (そのためオブジェクトが失われる場合がある) のではなく、スキーマ比較とデータ比較を使用して、ターゲット上のクライアントのデータベースと同等のデータベースを使用して、データベース プロジェクトから単一のスクリプトを作成してみませんか? これにより、要件に合わせたスクリプトが作成されます。

データ比較では、クライアントにプッシュしたくないテスト データ レコードを、下のグリッドでチェックを外すことで除外できます。

于 2010-06-18T12:37:51.293 に答える