다음을 통해 공유


방법: 새 데이터베이스 또는 기존 데이터베이스로 변경 내용 배포

업데이트: 2007년 11월

데이터베이스 프로젝트를 변경한 후에는 빌드 스크립트를 실행하여 이러한 변경 내용을 데이터베이스 서버로 배포해야 합니다. 빌드 스크립트를 생성하는 경우 데이터베이스 프로젝트 스키마가 프로젝트 속성에 지정된 대상 데이터베이스와 비교됩니다. 대상 데이터베이스가 있으면 항상 데이터베이스를 다시 만들도록 선택하지 않은 경우 업데이트 스크립트가 생성됩니다. 대상 데이터베이스가 없거나 항상 데이터베이스를 다시 만들도록 선택한 경우 빌드 스크립트에서 데이터베이스를 만듭니다. 마지막 빌드 또는 배포 이후 데이터베이스 프로젝트, 해당 속성 또는 내용이 변경된 경우 다음에 프로젝트를 배포할 때 최신 빌드 스크립트를 생성합니다.

중요:

데이터베이스 프로젝트를 빌드 또는 배포하기 전에 프로젝트 속성을 설정하여 대상 데이터베이스 연결과 데이터베이스 이름을 지정해야 합니다. 새 데이터베이스 프로젝트 마법사를 사용하여 데이터베이스 프로젝트를 생성한 경우 이미 프로젝트 속성을 지정했을 수도 있습니다. 언제든지 프로젝트 속성을 변경할 수 있습니다. 자세한 내용은 방법: 빌드 및 배포할 데이터베이스 프로젝트 구성을 참조하십시오.

데이터베이스 프로젝트를 새 데이터베이스 또는 기존 데이터베이스로 배포하려면

  1. 솔루션 탐색기에서 배포할 데이터베이스 프로젝트를 클릭합니다.

    사용자 지정 구성을 만든 경우 표준 도구 모음의 솔루션 구성 목록에서 해당 이름을 클릭하여 사용자 지정 구성을 사용하도록 지정할 수 있습니다. 기본적으로 데이터베이스 프로젝트에 대해 하나의 구성이 있으며 이미 선택되어 있습니다.

  2. 빌드 메뉴에서 배포를 클릭합니다.

    데이터베이스 프로젝트의 빌드 스크립트가 없거나 최신 상태가 아닌 경우 빌드 스크립트가 생성된 다음 배포됩니다. 출력 창에 다음과 같은 배포 결과가 표시됩니다.

------ 빌드 시작: 프로젝트: DatabaseProject, 구성: Default Any CPU ------

TargetDatabaseName : EnableFullTextSearch, BlockIncrementalDeploymentIfDataLoss에 대한 배포 스크립트 빌드 중

DatabaseProject --> file:///ProjectDrive:/Documents%20and%20Settings/UserName/My%20Documents/Visual%20Studio%202005/Projects/SolutionName/DatabaseProject/sql/DatabaseProject.TargetServerName_TargetInstanceName.TargetDatabaseName.sql

------ 배포 시작: 프로젝트: DatabaseProject, 구성: Default Any CPU ------

서버 TargetServerName\TargetInstanceName에 스크립트 ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\DatabaseProject\sql\DatabaseProject.TargetServerName_TargetInstanceName.TargetDatabaseName.sql 배포 중

file:///ProjectDrive:/Documents%20and%20Settings/UserName/My%20Documents/Visual%20Studio%202005/Projects/SolutionName/DatabaseProject/sql/DatabaseProject.TargetServerName_TargetInstanceName.TargetDatabaseName.sql --> 서버:"TargetServerName\TargetInstanceName", 데이터베이스:"TargetDatabaseName"

========== 빌드: 성공 또는 최신 상태 1, 실패 0, 생략 0 ==========

========== 배포: 성공 1, 실패 0, 생략 0 ==========

명령줄에서 데이터베이스 프로젝트를 새 데이터베이스 또는 기존 데이터베이스로 배포하려면

  1. 명령 프롬프트 창을 엽니다.

  2. 프로젝트 디렉터리를 찾습니다.

  3. 명령 프롬프트에서 다음 예제 명령줄을 입력하여 빌드 스크립트를 생성합니다. 여기에서 DatabaseProject는 프로젝트의 이름입니다.

    MSBuild /t:Build DatabaseProject.dbproj

    참고:

    MSBuild.exe가 PATH 환경 변수에서 지정하는 경로에 있어야 합니다. 또한 데이터베이스 프로젝트에서 또는 명령줄의 일부로 TargetDatabase 및 TargetConnectionString을 지정해야 합니다. 빌드 스크립트를 생성하는 명령줄 구문에 대한 자세한 내용은 데이터베이스 빌드 및 배포 개요를 참조하십시오.

    다음과 같은 결과가 나타납니다.

Microsoft (R) Build Engine Version 3.5.20418.0

[Microsoft .NET Framework, Version 2.0.50727.1318]

Copyright (C) Microsoft Corporation 2007. All rights reserved.

Build started 5/3/2007 2:27:39 PM.

__________________________________________________

Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\DatabaseProject\DatabaseProject.dbproj" (Build target(s)):

Target SqlBuild:

Building deployment script for TargetDatabaseName : EnableFullTextSearch, BlockIncrementalDeploymentIfDataLoss

. DatabaseProject --> file:///ProjectDrive:/Documents%20and%20Settings/UserName/My%20Documen

ts/Visual%20Studio%202005/Projects/SolutionName/DatabaseProject/sql/DatabaseProject.TargetServerName_TargetInstanceName.TargetDatabaseName.sql

Build succeeded.

0 Warning(s)

0 Error(s)

Time Elapsed 00:00:05.01

  1. 명령 프롬프트에서 다음 예제 명령줄을 입력하여 3단계에서 생성한 빌드 스크립트를 배포합니다.

    MSBuild /t:Deploy DatabaseProject.dbproj

    다음과 같은 결과가 나타납니다.

    Microsoft (R) Build Engine Version 3.5.20418.0

    [Microsoft .NET Framework, Version 2.0.50727.1318]

    Copyright (C) Microsoft Corporation 2007. All rights reserved.

    Build started 5/3/2007 2:27:39 PM.

    __________________________________________________

    Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\DatabaseProject\DatabaseProject.dbproj" (Deploy target(s)):

    Target SqlDeploy:

    Deploying script ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\DatabaseProject\sql\DatabaseProject.TargetServerName_TargetInstanceName.TargetDatabaseName.sql to server TargetServerName\TargetInstanceName

    file:///ProjectDrive:/Documents%20and%20Settings/UserName/My%20Documents/Visual%20Studio%202005/Projects/SolutionName/DatabaseProject/sql/DatabaseProject.TargetServerName_TargetInstanceName.TargetDatabaseName.sql --> Server:"TargetServerName\TargetInstanceName", Database:"TargetDatabaseName"

    Build succeeded.

    0 Warning(s)

    0 Error(s)

    Time Elapsed 00:00:02.56

여러 데이터베이스 또는 여러 서버에 배포

스키마를 여러 데이터베이스 또는 여러 서버에 배포할 수 있습니다. 개인 배포 서버와 스테이징 서버 모두에 배포하려는 경우와 같이 적은 수의 변경되지 않는 서버 또는 데이터베이스에 배포하는 경우에는 여러 빌드 구성을 만들 수 있습니다. 각 빌드 구성의 대상 서버 또는 데이터베이스는 서로 다를 수 있습니다. 많은 수의 서버에 배포해야 하거나 대상 서버 또는 데이터베이스의 이름이 정기적으로 변경되는 경우 다른 방법을 사용해야 합니다. 다음은 이러한 방법에 대한 설명입니다.

여러 빌드 구성을 만들어 여러 서버 또는 데이터베이스에 배포하려면

  1. Visual Studio Team System Database Edition에서 데이터베이스 프로젝트를 엽니다.

  2. 빌드 메뉴에서 구성 관리자를 클릭합니다.

    구성 관리자 대화 상자가 나타납니다.

  3. 활성 솔루션 구성 목록에서 <새로 만들기...>를 클릭합니다.

    새 솔루션 구성 대화 상자가 나타납니다.

  4. 이름에 첫 번째 서버 구성의 이름을 입력합니다.

  5. 기본 구성에 프로젝트 속성을 이미 구성한 경우 다음에서 설정 복사 목록에서 기본값을 클릭합니다.

  6. 확인을 클릭합니다.

  7. 활성 솔루션 구성 목록 상자에서 <새로 만들기...>를 클릭합니다.

    새 솔루션 구성 대화 상자가 나타납니다.

  8. 이름에 두 번째 서버 구성의 이름을 입력합니다.

  9. 기본 구성에 프로젝트 속성을 이미 구성한 경우 다음에서 설정 복사 목록에서 기본값을 클릭합니다.

  10. 닫기를 클릭합니다.

  11. 솔루션 탐색기에서 데이터베이스 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  12. 빌드 탭을 클릭합니다.

  13. 구성에서 첫 번째 서버 구성의 이름을 클릭합니다.

  14. 대상 연결 및 데이터베이스 이름을 첫 번째 서버 구성과 일치하도록 수정합니다.

  15. 구성에서 두 번째 서버 구성의 이름을 클릭합니다.

  16. 대상 연결 및 데이터베이스 이름을 두 번째 서버 구성과 일치하도록 수정합니다.

  17. 파일 메뉴에서 선택한 항목 저장을 클릭하여 구성 설정을 저장합니다.

    이제 표준 도구 모음에서 구성을 지정한 다음 해당 구성을 빌드 또는 배포할 수 있습니다.

명령줄을 사용하여 데이터베이스에 배포하려면

  • 명령 프롬프트 창에서 다음 명령줄을 입력하여 빌드 스크립트를 배포합니다. 여기에서 빌드 스크립트 이름, 서버 이름 및 대상 데이터베이스 이름을 해당 값으로 바꿉니다.

    MSBuild /t:Deploy /p:TargetDatabase=TargetDatabaseName /p:BuildScriptName=YourBuildScript.sql DatabaseProjectName.dbproj

    참고:

    여러 서버에 배포하려면 명령 프롬프트 창에서 /p:TargetConnectionString="Data Source=ServerName;Integrated Security=True;Pooling=False"를 지정하여 대상 연결 문자열을 재정의해야 합니다.

보안

데이터베이스 프로젝트를 배포하려면 새 배포에 대한 데이터베이스를 만들고 해당 데이터베이스의 스키마 개체를 생성, 수정 및 삭제할 수 있는 권한이 있어야 합니다.

참고 항목

작업

방법: 데이터베이스 빌드 스크립트 준비

개념

데이터베이스 빌드 및 배포 개요

데이터베이스 프로젝트 설정 개요

Database Edition의 용어 개요

기타 리소스

연습(버전 제어 데이터베이스 스키마 만들기 및 업데이트)