方法:Team System Build 2010(ベータ2)を使用してSQLデータベースプロジェクトを展開する
-
06-07-2019 - |
質問
SQL ServerにSQLデータベースプロジェクトをプッシュするためにTeam Build 2010ベータ2を取得する方法について、誰かが光を当てることができますか?
VSTS 2008では、targets属性が" deploy"に設定されたMSBuildコマンドを追加するだけでした。 TFSBuild.projファイルにありますが、2010が使用する新しいワークフローベースのxamlのものに変換するのに少し苦労しています。
私が探しているのは、データベース自体の実際の展開をトリガーする方法です。すでに展開スクリプトを生成しています。
解決
まだ答えを探している人には、vsdbcmd.exeを使用するInvoke Processを使用してください。 http://msdn.microsoft.com/en-us/library/ff805001.aspx
他のヒント
例を次に示します。
http://www.nablasoft.com/alkampfer/index.php/2009/10/06/deploy-a-database-project-with-tfs-build/
単にDeployToDatabase = trueが欠落している可能性があります
データベースのインクリメンタルなアップグレードが必要ない場合、この問題に対する別の解決策があります。したがって、ビルドごとにデータベースを再作成しても大丈夫な場合は、次のように動作します。
データベースプロジェクトファイルに展開ターゲットを追加
‘ マイプロジェクト設定
’の展開設定を構成します。これらの設定は、ソリューションをビルドするときにビルドサーバーによって使用されます。ローカルでビルドする場合、使用される設定は‘ My isolated development environment
’。
- データベースプロジェクトプロパティ
デプロイアクションは‘ デプロイスクリプト(.sql)を作成し、データベースをデプロイする必要があります
&#8217 ;;これにより、スクリプトの実行が妨げられ、スクリプトが作成されるだけです。
- データベースプロジェクトファイル
データベースプロジェクトファイルを変更します(データベースプロジェクトを右クリックし、[アンロード]を選択して、もう一度右クリックし、[[ProjectName] .dbprojを編集]を選択します) から
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
宛先
<Project DefaultTargets="Build;Deploy" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
ビルドサーバーがデータベースプロジェクトを含むソリューションをビルドするとき、デフォルトのターゲットを追加するとデータベースもデプロイされます。このビルドでは、&#8216; My project settings
&#8217;。
長所
- セットアップが簡単
短所
- デフォルトのターゲットがBuild and Deployに変更されているため、開発者がソリューションのローカル再ビルドを実行すると、データベースもデプロイされます(ビルドはデプロイメントのみをトリガーしません)
これまでに見つけた最も近いものはジムラム(MicrosoftのTeam Foundation PM)からのこの投稿。
ここでは、カスタムprojファイルを作成し、デフォルトのビルドプロセステンプレートを変更してprojファイルを呼び出す方法について漠然と話しています。
彼は、以前は無視していたアップグレードテンプレートの使用についても話します。どうやら、アップグレードテンプレートを使用して2008ビルド定義を呼び出すことができます。ただし、レガシーprojファイルに基づいてビルド全体を呼び出して定義することは避けたいのですが、少なくともオプションです。
どちらのトピックにも、実際に必要な変更を加えるのに十分な情報は含まれていませんが、将来の実験のための合理的な出発点を与えてくれます。