RedGate와 Visual Studio의 데이터베이스 프로젝트를 모두 시도했으며 데이터베이스 프로젝트에 데이터베이스 정의를 저장하는 것을 선호합니다. 데이터베이스가 솔루션의 일부가 되 자마자 선호하는 소스 제어 제공자를 사용할 수 있습니다. 대부분 뛰어난 Visual Studio 통합 기능이 있습니다.
SSDT 도구를 사용하면 데이터베이스 정의의 '최신 버전'이 있으므로 스키마를 쉽게 비교하고 스키마 업그레이드 스크립트를 생성 할 수 있습니다.
즉, 스키마는 일반적으로 적도의 일부일뿐입니다. 실제로 데이터베이스에는 이미 많은 양의 데이터가 있습니다. 그리고 내 사용자는 느슨해지면 오히려 실망하는 경향이 있습니다.
따라서 v1.0을 출시하자마자 업그레이드 스크립트를 유지 관리해야합니다. 때로는 스키마 변경 사항이 포함되어 있지만 다른 테이블의 내용을 기반으로 기본값을 만들어야하는 경우가 많으며 데이터 등을 시드 할 때까지 특정 제약 조건을 해제해야합니다. 일반적으로 스키마를 업그레이드하는 것만으로는 충분하지 않습니다. 이 업그레이드 스크립트를 데이터베이스 프로젝트의 별도 폴더에 두는 것이 좋습니다. 이들은 일반적으로 'v1.0에서 v1.1로 업그레이드'처럼 보입니다.
내 데이터베이스에는 항상 현재 버전 번호를 알려주는 참조 테이블이 있으므로 호환되지 않는 업그레이드를 차단할 수 있습니다. 업그레이드 스크립트의 첫 번째 문장은 현재 버전을 확인하고 예상과 다른 경우 구제합니다.
데이터베이스 프로젝트의 또 다른 이점은 동일한 스키마를 기반으로 다른 데이터 세트를 배치 할 수 있다는 것입니다. 개발, QA 팀, 사용자 수락 테스트 및 자동화 된 통합 테스트를위한 다른 데이터 세트가 있습니다. 데이터베이스 프로젝트에는 배포 후 스크립트가 하나만있을 수 있으므로 여기서는 '마스터'프로젝트를 참조하는 새 데이터베이스 프로젝트를 만들고 해당 프로젝트의 사후 배포 프로세스의 사용자 지정 데이터 집합을 만드는 것이 좋습니다.
이것들은 나의 2 센트였습니다. 무엇을 제안 하든지 무엇보다도 그것은 당신과 당신의 팀에 맞고 대부분의 일반적인 작업을 희망적으로 지원해야합니다.