데이터베이스 소스 제어 대 스키마 스크립트 변경
-
15-09-2020 - |
문제
건물 및 유지 보수를 구축하고 유지하는 데 더 많은 Devs가 더 많은 Devs가 항상 소프트웨어 개발에서 계속되는 것입니다. 우리는 빌드 스크립트를 생성하고 시간이 지남에 따라 데이터베이스가 커짐에 따라 적용되는 추가 업데이트 스크립트를 유지 관리합니다. 수동 업데이트에서 이러한 프로세스를 자동화하는 데 도움이되는 콘솔 앱 / 빌드 스크립트로이를 관리하는 방법은 여러 가지가 있습니다.
이 프로세스를 구축 / 관리 한 사람은 데이터베이스 스키마 관리를위한 소스 제어 솔루션으로 이동 했습니까? 그렇다면 가장 좋은 해결책을 찾은 것이 무엇입니까? 피해야하는 함정이 있습니까?
레드 게이트는 MSSQL 세계에서 큰 플레이어 인 것처럼 보이며 DB 소스 컨트롤은 매우 흥미로워 보입니다. http://www.red-gate.com/products/solutions_for_sql/database_version_control. htm
(기본값) 데이터 * 관리 프로세스를 대체하는 것처럼 보이지 않으므로 변경 관리 프로세스의 절반 만 POV에서만 대체합니다.
(데이터에 대해 이야기 할 때, 나는 조회 가치와 그 일종의 것을 의미합니다, 기본적으로 배포 해야하는 데이터 또는 DR 시나리오에서 배포 해야하는 데이터)
우리는 .NET / MSSQL 환경에서 작동하지만 전제가 모든 언어에 걸쳐 동일합니다.
해결책
유사한 질문
이러한 기존 질문 중 하나 이상이 도움이 될 수 있습니다.
- 데이터베이스 변경을 관리하는 가장 좋은 방법
- MySQL 데이터베이스 변경 추적
- SQL Server 데이터베이스 변경 워크 플로우 모범 사례
- 데이터베이스 변경 사항 확인 (버전 제어)
- dev db에서 프로덕션으로 변경 전송 DB
- 데이터베이스 구조로 변경된 변경 사항 추적
또는 데이터베이스 변경
다른 팁
나는 내가 일하는 은행에 의해 사내 사내에서 개발 된 데이터웨어 하우스를 돌보아 보입니다. 이를 위해서는 끊임없는 업데이트가 필요하며 2-4 개 Dev가 작업하는 팀이 있습니다.
우리는 "제품"의 인스턴스 만 있기 때문에 우리는 운이 좋기 때문에 다른 버전에있을 수있는 여러 인스턴스에 배포 할 필요가 없습니다.
데이터베이스의 각 개체 (테이블, 뷰, 인덱스, 저장 프로 시저, 트리거)에 대한 생성 스크립트 파일을 유지합니다.
가능한 경우 ALTER TABLE
를 사용하지 않으므로 테이블의 이름을 바꾸고 새 파일을 만들고 데이터를 마이그레이션하는 것을 좋아합니다. 즉, ALTER
스크립트의 기록을 살펴볼 필요가 없음을 의미합니다. 우리는 Create 스크립트를보고 모든 테이블의 최대 최신 버전을 볼 수 있습니다. 마이그레이션은 별도의 마이그레이션 스크립트로 수행됩니다. 이는 부분적으로 자동 생성 될 수 있습니다.
릴리스를 수행 할 때마다 스크립트 / 마이그레이션 스크립트 작성을 적절한 순서로 실행하는 스크립트가 있습니다.
FYI : 우리는 소스 코드 제어를 위해 Visual SourceSafe (Yuck!)를 사용합니다.
SQL Server 소스 제어 도구를 찾고 있었고 SQL Server Management Studio를 플러그인으로 사용하는 많은 프리미엄 버전을 발견했습니다.
Liquibase는 무료 하나이지만 나는 결코 내 필요를 위해 일하고 있지 않습니다.
SSMS와 스크립트가 객체와 데이터를 플랫 파일로 스크립트로 사용하는 또 다른 무료 제품이 있습니다.
이 객체를 새 SQL Server 인스턴스로 펌핑하여 데이터베이스 개체를 다시 만듭니다.