我想在我們的CI服務器上自動部署數據庫。我寫了一個powershell腳本來將dacpac文件部署到sql server上的數據庫。但是現在我處於一個奇怪的位置,我有兩個獨立的dacpac文件,並且希望將它們部署到單個數據庫(由於我們的軟件設計,我無法使用單個dacpac)。如果我逐一部署它們,則會刪除從第一個dacpac創建的對象。所以這裏的任何幫助都非常感謝。將多個dacpac文件部署到單個數據庫
如果還有其他方法可以合併兩個dacpac文件並使用任何命令或腳本進行部署,請回復您的建議。
我正在使用下面的powershell腳本將單個dacpac部署到數據庫。
$sqlPackagePath = "C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Microsoft.SqlServer.Dac.dll";
$sqlServer = "localhost";
$dacpacPath = "mydatabase.dacpac"
$database = "TestDatabase"
add-type -path $sqlPackagePath
$dacService = new-object Microsoft.SqlServer.Dac.DacServices "server=$sqlServer"
$dp = [Microsoft.SqlServer.Dac.DacPackage]::Load($dacpacPath)
$dacService.deploy($dp, $database, "True")
如果您正在部署第一個,然後是第二個,該怎麼辦。它是否覆蓋?還是滿足您的需求?那麼我們可以考慮一些邏輯 –
是的,它會刪除第一個dacpac創建的對象,並僅保留第二個dacpapc中的對象。但我想保留兩者。我可以每次創建整個新數據庫,因爲它僅用於集成測試,並且必須每次都從新實例開始。 – user1856918
那麼爲什麼不創建兩個單獨的對象,並將其部署在一個單一的數據庫。用兩個dacpac運行foreach並部署它, –