다음을 통해 공유


다른 데이터베이스를 참조하는 데이터베이스의 팀 개발 시작

데이터베이스 스키마에 대한 변경 내용을 관리하려면 먼저 데이터베이스 프로젝트를 만든 다음 관리할 데이터베이스의 개체 및 설정을 가져와야 합니다. 데이터베이스의 개체가 다른 데이터베이스의 개체를 참조하는 경우에는 데이터베이스 프로젝트의 속성에서 참조되는 서버 및 데이터베이스도 선언해야 합니다. 데이터베이스 프로젝트는 데이터베이스의 오프라인 표현이므로 데이터베이스 프로젝트를 버전 제어에서 관리하도록 설정한 다음 격리된 개발 환경에 반복적 변경 내용을 배포할 수 있습니다. 팀 멤버는 자신이 변경한 내용을 독립적으로 테스트할 수 있으며 변경 내용을 완전히 테스트한 후에 팀과 공유할 수 있습니다. 이 방법을 사용하면 데이터베이스 코드를 프로덕션 환경에 배포하기 전에 품질을 제어할 수 있습니다.

데이터베이스 프로젝트의 형식 지정

데이터베이스 프로젝트를 만들 때는 사용 중인 SQL Server 버전에 해당하는 프로젝트 형식을 지정합니다. 예를 들어 관리하려는 데이터베이스가 SQL Server 2005를 기반으로 하는 경우 SQL Server 2005 데이터베이스 프로젝트 또는 SQL Server 2005 마법사를 지정합니다. 마법사를 사용하면 프로젝트를 만들 수 있을 뿐 아니라 일부 빌드 및 배포 설정을 구성하고 데이터베이스 개체와 설정을 동시에 가져올 수도 있습니다.

데이터베이스 개체 및 설정 가져오기

프로젝트를 만든 후에는 데이터베이스 인스턴스 또는 스크립트에서 개체 및 설정을 가져올 수 있습니다. 데이터베이스를 가져온 후에는 해당 개체 정의의 유효성이 검사되며 구문 분석할 수 없는 문은 ScriptsIgnoredOnImport.sql 파일에 추가됩니다.

데이터베이스 프로젝트 및 .dbschema 파일에 대한 참조 선언

데이터베이스를 가져온 후에는 프로젝트 속성에서 크로스 데이터베이스 참조를 선언하여 경고를 해결해야 합니다. 각 참조를 선언할 때 참조되는 서버 및 데이터베이스에 대한 변수를 정의합니다. 각 변수에 대해 해당 프로젝트를 배포할 환경에 따라 각기 다른 값을 지정할 수 있습니다.

참조를 선언할 때는 다른 데이터베이스 프로젝트 또는 데이터베이스 스키마 파일(.dbschema)을 참조 대상으로 지정합니다. 데이터베이스 스키마 파일은 데이터베이스 프로젝트를 빌드하거나 명령줄 도구를 사용하여 스키마를 가져올 때 생성됩니다. 또한 이 대상은 이름으로 지정하거나 프로젝트 빌드 시 적절한 값으로 대체되는 변수로 지정할 수 있습니다. 유지 관리를 간단하게 하기 위해 데이터베이스 프로젝트의 개체가 변수를 사용하여 다른 데이터베이스의 개체를 참조하도록 해당 개체를 업데이트할 수 있습니다. 자세한 내용은 서버 또는 데이터베이스에 대한 참조 이름 바꾸기를 참조하십시오. 데이터베이스 프로젝트를 빌드하면 변수가 지정한 값으로 대체됩니다.

다음과 같은 경우 다른 데이터베이스 프로젝트를 대상으로 참조해야 합니다.

  • 참조가 포함될 데이터베이스와 참조 중인 데이터베이스 모두 스키마를 변경해야 하는 경우. 참조가 들어 있는 데이터베이스 프로젝트를 배포하면 참조 중인 데이터베이스 프로젝트도 함께 배포됩니다.

다음 중 어느 하나라도 해당되는 경우에는 데이터베이스 스키마 파일(.dbschema)을 참조해야 합니다.

  • 프로젝트가 현재 솔루션에 들어 있지 않은 데이터베이스를 참조해야 하는 경우

  • 종속된 프로젝트를 배포하지 않고 단일 프로젝트만 배포해야 하는 경우

  • 변경 가능성이 없는 데이터베이스 스키마를 참조하고 있는 경우. 이 시나리오에서는 데이터베이스 스키마 파일(.dbschema)을 버전 제어에 체크 인할 수 있습니다.

자세한 내용은 데이터베이스 프로젝트에서 참조 사용을 참조하십시오.

일반 작업

일반 작업

지원 내용

데이터베이스 프로젝트에 대한 자세한 내용: 데이터베이스 프로젝트를 사용하여 스키마 변경 내용을 관리하는 방법에 대한 기본 개념을 알아보십시오.

실습: 연습 과정을 따라 다른 데이터베이스를 참조하는 데이터베이스의 변경 내용을 관리할 수 있는 격리된 개발 환경을 만드는 방법을 익힐 수 있습니다.

참조되는 데이터베이스에 대한 .dbschema 파일 만들기 .dbschema 파일을 만들면 데이터베이스 프로젝트를 아직 만들지 않은 경우라도 해당 데이터베이스를 참조할 수 있습니다. 예를 들어 현재 개발 중이 아닌 데이터베이스를 참조해야 하는 경우가 있을 수 있습니다. 명령 프롬프트에서 해당 데이터베이스의 스키마를 가져올 때는 데이터베이스 프로젝트에서 참조할 수 있는 .dbschema 파일을 만듭니다.

기존 데이터베이스 스키마를 버전 제어에서 관리하도록 설정: 데이터베이스 프로젝트 마법사를 사용하여 프로젝트를 만들고 프로젝트 설정을 구성하고 스키마를 가져올 수 있습니다. 또한 나중에 스키마를 가져오려는 경우나 가져올 스키마가 있는 데이터베이스에 액세스할 수 있는 권한이 없는 경우 빈 프로젝트를 만들 수 있습니다.

그런 다음 데이터베이스의 개체가 참조하는 다른 서버 및 데이터베이스를 지정하는 변수를 만들어야 합니다. 이러한 변수를 만든 후에는 프로젝트 속성에서 참조를 선언할 때 해당 변수를 사용해야 합니다. 명시적 참조 대신 변수를 사용하도록 개체 정의를 업데이트할 수도 있습니다. 변수를 사용하면 데이터베이스를 배포할 환경에 따라 각기 다른 데이터베이스를 지정할 수 있습니다. 예를 들어 변수를 개발, 테스트, 스테이징 및 프로덕션 환경과 관련된 값으로 자동 대체할 수 있습니다. 크로스 데이터베이스 참조를 선언한 후에는 데이터베이스 프로젝트를 버전 제어에 추가할 수 있습니다.

관련 시나리오

데이터베이스 팀 개발 시작

공유 서버 개체를 참조하는 데이터베이스의 팀 개발 시작

SQLCLR 개체를 참조하는 데이터베이스의 팀 개발 시작