2014-09-18 2 views
0

데이터베이스 배포의 일부로 DACPAC를 사용하고 있습니다. 동일한 패키지가 dev/staging/prod 환경에 배포됩니다. 우리가 할 수 있기를 원하는 것은 예를 들어 각 환경에서 다른 사용자 ID를 가진 관리자 사용자와 같은 데이터를 데이터베이스에 저장하는 것입니다.환경 인식 SQL 스크립트

DACPAC (또는 기타)의 게시 프로필에 변수를 배치 할 수 있으면 좋겠지 만 @@servername을보고이를 수행 할 수 있다고 생각합니다. 이것을 성취하는 더 좋은 방법이 있습니까?

답변

2

Visual Studio에서 SSDT를 사용하는 경우 매우 깨끗합니다.

프로젝트 속성, SQLCmd 탭으로 이동하여 모든 변수에 입력하십시오.

enter image description here

그런 다음 스크립트를 사용합니다. 비주얼 스튜디오 내에서 게시 할 때 (당신이 어떤 지정된 경우)

enter image description here

당신은 당신이 변수의 값을 지정하거나 기본값을로드 할 수있는 멋진 UI를 얻을 수 있습니다.

enter image description here

프로파일은 MSBuild에서 프로젝트의 형식으로 그냥 XML 파일 게시, 그래서 거기에가는 미친 아무것도 없다. 자동으로 배포하는 경우 사용중인 dacpac 배포 도구를 사용하여 변수의 기본값을 지정할 수 있습니다. SSDT의 일부인 SqlPackage를 사용합니다. 파워 쉘에서 Command Line Reference

사용법 :

& $sqlpackageexe /Action:Publish /SourceFile:$dacpac /Profile:$dacprofile /TargetConnectionString:$connstring /Variables:DbEnvironment=Development