私は、CIサーバー上でデータベースのデプロイメントを自動化したいと思っています。私は、SQL Serverのデータベースにdacpacファイルを展開するためのpowershellスクリプトを書いていました。しかし、今私は2つの別々のdacpacファイルがあり、それらを単一のデータベースに展開したいという奇妙な立場にいる(私たちのソフトウェア設計のために単一のdacpacを使用することはできない)。 1つずつ展開すると、最初のdacpacから作成されたオブジェクトが削除されます。だから、ここのどんな助けも高く評価されます。複数のdacpacファイルを1つのデータベースにデプロイ
2つの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")
最初のものを展開してから2番目のものを展開する場合はどうなりますか?それは上書きされますか?それともあなたの必要を満たしているか。 –
の論理を考えると、最初のdacpacによって作成されたオブジェクトは削除され、2番目のdacpapcのオブジェクトのみが保持されます。しかし、私は両方を保ちたい。私は毎回新しいデータベース全体を作成するのは大丈夫です。これは、統合テストに使用されているたびに毎回新しいインスタンスから始めなければならないからです。 – user1856918
それから、2つの別々のオブジェクトを作成して1つのdbにデプロイするのはなぜですか? 2つのdacpacでforeachを実行し、 –