2015-01-30 2 views
1

DacServices 라이브러리를 사용하여 응용 프로그램을 통해 배포 할 dacpac 파일이 있습니다.데이터베이스 속성을 배포하지 않고 via 코드 dacpac 배포

var dp = DacPackage.Load(dacpacPath); 
var dbDeployOptions = new DacDeployOptions 
{ 
    BlockOnPossibleDataLoss = false 
}; 
var dbServices = new DacServices(WebConfigHelper.GetDbConnectionString(webConfigPath)); 
dbServices.Deploy(dp, WebConfigHelper.GetDbName(webConfigPath), true, dbDeployOptions); 

문제는이 코드로, 대상 데이터베이스가 항상 생성하는합니다 (SSDT 데이터베이스 프로젝트에 설정되어 무엇을 "전체"변경 복구 모델이다 가지고 있다는 것입니다 : 나는 그것을 할 수있는 다음과 같은 코드를 dacpac).

다양한 데이터베이스 속성을 사용하기 위해 배포하는 다양한 대상 데이터베이스이며 대상 DB 복구 모델을 알지 못합니다. 어떤 것은 간단하고 일부는 완전하게 사용합니다. 우리는 그것을 바꾸고 싶지 않습니다.

대상 데이터베이스 속성을 변경하지 않으려면이 코드를 어떻게 변경할 수 있습니까? 이미 데이터베이스 프로젝트에서 "Deploy database properties"설정을 해제하려고 시도했지만 위의 코드는이를 무시한 것 같습니다.

+2

DacDeployOptions.ScriptDatabaseOptions = false를 시도해 보셨습니까? –

+0

매우 감사합니다. 두 번 속성 목록을 살펴본 결과 어떻게 든 두 번 빠뜨린 것 같습니다. 아래 답변을이 글에 쓰면 해결책으로 받아 들일 것입니다. –

답변

2

DacDeployOptions 클래스에는 ScriptDatabaseOptions 부울이 포함되어 있습니다. 부울은 false로 설정하여 기존 데이터베이스 설정을 유지하거나 새 기본값을 사용합니다.