다음을 통해 공유


배포 전 및 배포 후 스크립트 개요

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

배포 전 및 배포 후 스크립트는 배포 중에 실행할 프로젝트에 포함된 SQL 스크립트입니다. 배포 전/후 스크립트는 .dacpac에 포함되지만 데이터베이스 개체 모델로 컴파일되거나 유효성이 검사되지 않습니다. 배포 계획이 실행되기 전에 배포 전 스크립트가 실행되지만 스크립트가 실행되기 전에 배포 계획이 계산됩니다. 배포 후 스크립트는 배포 계획이 완료된 후에 실행됩니다.

SQL 프로젝트 파일 샘플 및 구문

SQL 프로젝트 파일에는 단일 배포 전 스크립트와 단일 배포 후 스크립트가 지정될 수 있습니다.

SQL 프로젝트 파일의 다음 예제에서는 배포 전 스크립트로 prep-db.sql 파일을 추가합니다.

...
  <ItemGroup>
    <PreDeploy Include="prep-db.sql" />
  </ItemGroup>

SQL 프로젝트 파일의 다음 예제에서는 배포 후 스크립트로 populate-app-settings.sql 파일을 추가합니다.

...
  <ItemGroup>
    <PostDeploy Include="populate-app-settings.sql" />
  </ItemGroup>
</Project>

각 파일을 순서대로 호출하는 SQLCMD 스크립트를 사용하여 배포 전 또는 배포 후 스크립트의 일부로 여러 파일을 실행할 수 있습니다.

:r .\scripts\script1.sql
:r .\scripts\script2.sql

이러한 파일은 Visual Studio의 파일 속성 Build ActionNone 속성을 설정하거나 .sqlproj 특성이 Build(으)로 설정된 None 파일의 파일 입력을 추가하여 데이터베이스 모델 빌드에서 제외되어야 합니다.

...
  <ItemGroup>
    <Build Remove="scripts\script1.sql" />
    <Build Remove="scripts\script2.sql" />
  </ItemGroup>
</Project>

배포 전 및 배포 후 스크립트 추가

솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가>스크립트를 선택합니다. 배포 전 스크립트 또는 배포 후 스크립트를 선택합니다.

스크립트 파일이 프로젝트에 추가되고 쿼리 편집기에서 열립니다. 여기서 스크립트를 완료할 수 있습니다. 이 스크립트는 프로젝트가 배포될 때마다 배포 계획이 실행되기 전이나 후에 실행됩니다.

솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 추가, 새 항목을 선택합니다. 새 항목 추가 대화 상자가 나타나고 모든 템플릿 표시를 선택합니다. 그런 다음 테이블을 선택합니다. 배포 전 스크립트 또는 배포 후 스크립트를 선택합니다.

스크립트 파일이 프로젝트에 추가되고 쿼리 편집기에서 열립니다. 여기서 스크립트를 완료할 수 있습니다. 이 스크립트는 프로젝트가 배포될 때마다 배포 계획이 실행되기 전이나 후에 실행됩니다.

VS Code 또는 Azure Data Studio의 데이터베이스 프로젝트 보기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 배포 전 스크립트 추가 또는 배포 후 스크립트 추가를 선택합니다. 파일 확장명 없이 스크립트 이름을 제공합니다.

스크립트 파일이 프로젝트에 추가되고 쿼리 편집기에서 열립니다. 여기서 스크립트를 완료할 수 있습니다. 이 스크립트는 프로젝트가 배포될 때마다 배포 계획이 실행되기 전이나 후에 실행됩니다.

.sqlproj 파일을 직접 편집하여 배포 전 또는 배포 후 스크립트를 추가합니다. <ItemGroup> 파일의 .sqlproj 섹션에 <PreDeploy> 또는 <PostDeploy> 항목을 추가합니다.

예를 들어 프로젝트에 스크립트 scripts\before-script.sql을(를) 배포 전 스크립트로 추가하려면 다음을 수행합니다.

...
  <ItemGroup>
    <PreDeploy Include="scripts\before-script.sql" />
  </ItemGroup>

이 스크립트 scripts\before-script.sql은(는) 프로젝트가 배포될 때마다 배포 계획이 실행되기 전에 실행됩니다.