1

GDR バージョン 9.1.40413.00 で Visual Studio Team System 2008 を使用しており、単一の DB プロジェクトを複数のデータベースに配置する際の問題を解決しようとしています。たとえば、Performance.DB プロジェクトがある場合、Performance、Performance2、Performance3 などのデータベースをデプロイしたいと考えています。

ただし、データベース プロジェクトのプロパティに移動すると、デプロイ ターゲットは 1 つしか持てないようです。これを回避する方法はありますか?また、各パフォーマンス データベースに独自の sqlcmdvars ファイルを用意して、独自の mdf ファイルと ldf ファイルを用意したいと考えています。

プロジェクト内のプロパティからこれを行うことができない場合、プロジェクトを展開するときに、展開するデータベースごとに、たとえば次のコマンドを複数回実行するバッチ スクリプトを作成する方法がありますか?

"D:\Program Files\Microsoft Visual Studio 9.0\VSTSDB\Deploy\vsdbcmd.exe" /ManifestFile:"D:\Performance\Test\Binaries\Release\Performance.DB.deploymanifest" /a:Deploy /cs:"Data Source=.\SQLEXPRESS;Integrated Security=True;Pooling=False" /p:GenerateDropsIfNotInProject=True /p:BlockIncrementalDeploymentIfDataLoss=False /p:TargetDatabase=Performance /p:SqlCommandVariablesFile="D:\Performance\Test\Binaries\Release\Performance.sqlcmdvars" /p:IgnorePermissions=True /p:GenerateDeployStateChecks=False /dd:+
4

3 に答える 3

0

私は最近、複数の「子」データベースに展開される一連の「基本」オブジェクトを含む 1 つのデータベース プロジェクトが必要な、同様の状況に遭遇しました。この問題を解決するために、チームは複合プロジェクト (http://msdn.microsoft.com/en-us/library/dd193415.aspx) を使用してベース データベースと子データベースを定義し、複数のビルド構成をセットアップしました。各ビルド構成では、異なるターゲット、sqlcmdvars などを指定し、基本的に一度に 1 つのデータベースにのみデプロイするようにビルドを調整できます。

つまり、すべてのパフォーマンス データベースを展開するには、それぞれのビルド構成を変更する必要があります。または、TFS で展開/単体テストを行う場合は、ビルド構成ごとに異なる .config ファイルを使用して複数のテスト設定ファイルを作成する必要があります。

于 2012-04-17T18:58:44.167 に答える
0

部分的なデータベース プロジェクトを試してみることができます。

http://blogs.msdn.com/gertd/archive/2008/10/05/partial-projects.aspxの例を次に示します。

あるデータベース プロジェクトから別のデータベース プロジェクトにコードを共有するのに役立ちますが、プロジェクト全体の規模ではそれほど優れていない場合があります。

これを使用すると、コア パフォーマンス データベース プロジェクトが「ベース」プロジェクトになり、他のすべてはこれから派生します。

于 2009-10-11T01:04:56.827 に答える
0

*.dbproj ファイルの MSBUILD ハッキングにより、AfterDeploy イベントで自分自身を 2 回/n 回呼び出すだけのプロジェクトを思いついたので、1 つの 'Deploy' コマンドを使用して複数のデータベースにデプロイできます。

 <PropertyGroup>
    <TargetDatabase>Performance</TargetDatabase>
    <TargetDatabase Condition="$(SecondDatabase)!=''">$(SecondDatabase)</TargetDatabase>
  </PropertyGroup>


 <Target Name="AfterDeploy">
    <MSBuild Condition="$(SecondDatabase)==''" Targets="Deploy" Properties="SecondDatabase=Performance2" Projects="$(ProjectPath)" />
    <MSBuild Condition="$(SecondDatabase)==''" Targets="Deploy" Properties="SecondDatabase=Performance3" Projects="$(ProjectPath)" />
  </Target>
于 2012-04-19T12:48:37.330 に答える