2016-10-14 50 views
0

我正在將使用自定義構建工具的舊版自定義數據庫部署過程轉換爲完整的SSDT項目。到目前爲止,一切都很順利。我有複合項目可以部署基礎數據庫以及部署示例和測試數據的項目。運行post部署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不是eierlegende Wollmilchsau,它是一組用於管理數據庫更改的工具。

我懷疑如果最後一步是「提供一個Google App Engine實例並部署一個Python腳本」,例如,它似乎不是一個包含在SSDT後期部署腳本中的自然人選,而我認爲這屬於同一類別。

+0

當我說「部署」時,我更多地指的是開發人員和測試人員的本地部署。誰想要在本地進行測試。我們可以使用Jenkins將網站激活到我們的測試環境中。我只是希望能夠在一次部署中做到這一點。 – webwires

+0

然後可能值得研究PowerShell類型選項。我認爲將「本地」部署腳本與「生產」部署腳本相同是一個有價值的雄心壯志,但這種腳本運行得越多越好。另外,有些方法可以通過TSQL調用Web服務,但我認爲它們中的任何一個都不是特別好的主意。 –