我正在使用msdeploy的dbDacFx提供程序將.dacpac部署到數據庫。 dacpac期望三個SQLCMD變量。我使用看起來像這樣的語法:將SQLCMD變量傳遞給帶有msdeploy的dbDacFx提供程序
-setParam:kind=SqlCommandVariable,scope=Database.dacpac,match=foo1,value="foo1 value"
我一直在嘗試一切我能找到,但不幸的是旁邊解決此過程中沒有文檔存在。我從msdeploy得到的輸出是Missing values for the following SqlCmd variables: foo1 foo2 foo3
。
如果有人可以發現我做錯了什麼,那將是太棒了。如果有人知道在哪裏可以得到一些非常棒的文檔。我很樂意接受任何答案,說我應該做什麼,但我很想了解所有這些價值觀是什麼,爲什麼我做錯了。
編輯: 在這一點上,似乎dbDacFx不存在這樣的選項。我們的這個特性的用例是試圖將同樣的模板數據庫(在visual studio sql項目中進行管理)部署到70多個數據庫,我們希望這些數據庫並行執行。 dbSqlPackage(除了被棄用)不是線程安全的並且不允許並行部署。 dbDacFx克服了這個缺點,但它不能(在我的實驗中)傳遞駐留在項目級別的SqlCmdVariables,並且它不能像dbSqlPackage那樣使用發佈配置文件。如果我能夠弄清楚如何克服這些缺點,我將與網絡部署團隊的成員聯繫併發布任何更新。
你有沒有聽說過這個消息? MSDeploy顯示瞭如此多的承諾來滿足我們的數據庫部署需求,但是在數小時追蹤沒有明顯記錄/診斷的無意義錯誤消息後,我現在認爲它只是不支持我們想要做的事情。非常令人沮喪。 – Michael12345
還沒有聽說過任何消息....我的同事和我自己採用了Sql Server團隊提供的SqlPackage產品,並以輸出腳本的方式將其包裝,以便我們清理我們不想要的語句(在我們的例子中, 'drop user。* ?;'。之後,我們使用SQLCMD再次執行包含在同一個工具中的腳本,結果是我們的最快部署選項。 – misterManager