CI 서버에서 데이터베이스 배포를 자동화하고 싶습니다. dacpac 파일을 SQL 서버의 데이터베이스에 배포하기 위해 powershell 스크립트를 작성했습니다. 하지만 이제는 두 개의 분리 된 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
그러면 두 개의 개별 오브젝트를 작성하고 단일 db에 배치하지 마십시오. 두 dacpac으로 foreach를 실행하고 방금 배포하십시오. –