2016-10-14 5 views
0

私は、カスタムビルドツールを使用して従来のカスタムデータベースデプロイメントプロセスを本格的なSSDTプロジェクトに変換しています。これまでのところすべてがうまくいっています。サンプルデータベースとテストデータをデプロイするプロジェクトだけでなく、ベースデータベースをデプロイできる複合プロジェクトもあります。ポストデプロイpsスクリプトまたは実行可能ファイル

私が今問題を抱えているのは、Webサービスを呼び出してアクティベーションコードを取得し、プロセスの最終ステップとしてデータベースに追加できるようなコードを実行するためのソリューションを見つけることです。誰も私が使用できるかもしれないフックに私を指摘できますか?

更新:サンプルとテストデータをローカルマシンに保守して展開するのをより簡単にするために、これを明確にします。私たちは公式のテスト環境に夜間に配備されたときにJenkinsを使用してサイトを簡単にアクティブ化できます。私たちが今使っている自社のデータベース展開ツールを置き換えるために、これを一歩一歩進めることができればと考えています。

答えて

2

私の展開シナリオでは、必要な前提条件を満たすいくつかのpowershellスクリプトでデータベース展開プロセスをラップしました。たとえば:

  • PowerShellスクリプトが開始され、その後、それがsqlpackage.exeまたはpreproduced SQL導入スクリプト
  • が最終的にPowerShellのスクリプトはサービスを開始して実行、いくつかのサービス
  • 次を停止します。

パラメータをpowershellからsqlスクリプトに、またはsqlpackage.exeをsqlcmd変数として渡すことができます。したがって、まずwebserviceを呼び出してから、アクティベーションコードをsqlcmd変数として渡して、その変数をpostdeploymentスクリプトで使用します。

+0

私は同様のものを提案しようとしていました。何らかの種類のCLRコードやSSISエンドポイントを使用して実行することは可能かもしれませんが、PowerShellでこれを行う方が簡単です。私はSSDT/SQLPackage/DacFXの周りにPSラッパーを書いた人がいることを知っているので、次のステップはPSであまりにも悪いはずがありません。 –

+0

はい、これは可能な解決策であると私には起こりました。私はVSで直接「公開」機能を利用することを望んでいましたが、これは出版物が私が必要とするすべてをしない可能性があるため、次善策のようです。 – webwires

1

特にの最終的なのステップであれば、Powershellスクリプト、msbuild、TFS、Jenkinsなど、どのようなツールを使用していても、これを別々に行うことができます。おそらく、このようにプロビジョニングされる説明のフロントエンドもありますか?

SSDTは、ではありません.Wiermilchsauは、データベースの変更を管理するためのツールのセットです。

最終ステップが「Google App EngineインスタンスをプロビジョニングしてPythonスクリプトをデプロイする」場合は、たとえば、SSDTのデプロイ後スクリプトに含めるのが自然な候補にはならないと思われますこれは同じカテゴリーに分類されます。

+0

私が「デプロイ」と言うときには、デベロッパーとテスターのためのローカルデプロイメントとしてもっと意味があります。誰がローカルでテストしたいのですか? Jenkinsを使用してWebサイトをテスト環境にアクティベーションすることができます。私は、単一のデプロイでこれを実行できることを望んでいました。 – webwires

+0

おそらく、PowerShellのオプションのオプションを検討する価値があります。私は、 "ローカルの"デプロイメントスクリプトを "プロダクション"デプロイメントスクリプトと同じにすることが価値のある野望であると言います。また、TSQLからWebサービスを呼び出す方法もありますが、そのいずれも特に良い考えではないと思います。 –

関連する問題