我想在我们的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并部署它, –