2012-04-18 4 views
0

SQL Server 2008이 설치된 두 대의 서버 컴퓨터 (개발 용, 클라이언트 용)가 있습니다. 개발자가 개발 서버에서 테이블/뷰/저장 프로 시저를 변경할 때마다 클라이언트 서버도 반영해야합니다.데이터에 전혀 영향을주지 않고 데이터베이스 스키마를 일관되게 유지하는 방법은 무엇입니까?

현재 테이블의 새 열과 같은 모든 변경 사항, 저장 프로 시저의 변경 사항 등을 수동으로 처리하고 있습니다. DB 스크립트 또는 복제로 전체 절차가 자동화 될 수 있습니까? 또는 데이터베이스 스키마를 일관성있게 유지하는 더 나은 솔루션이 있습니다.

도움을 주시면 대단히 감사하겠습니다.

감사합니다.

답변

0

모든 데이터베이스 응용 프로그램에있는 문제이며 해결하기 어려운 문제입니다. 개발자가 변경 한 사항을 먼저 테스트해야하고, 테스트되지 않은 코드를 실제 데이터베이스와 병합하지 않으려는 경우에는 이러한 솔루션을 예약 할 수 없습니다. 현재이 문제를 해결하기위한 일반적인 솔루션을 작성하고 있기 때문에이 질문은 저에게 큰 도움이됩니다.

그러나 우리는 개방형 DBDiff라는 오픈 소스 제품을 사용하고 있습니다. Google에서는이 제품을 놓치지 않습니다. 원본 데이터베이스와 대상 데이터베이스를 전달하고 대상을 원본과 동일하게 만드는 스크립트를 생성합니다. 어셈블리와 사용자 역할을 복사하는 데 문제가있는 것 같지만 모든 문제는 발생하지 않았습니다.

+0

답장을 보내 주셔서 감사합니다. 귀하의 회신 덕분에 데이터베이스 간의 차이점을 찾기 위해 응용 프로그램을 개발하는 것이 궁금했습니다. 지금 정말 필요합니다. –

0

필자는 변경 사항이 테스트되었고 소스 컨트롤에 제대로 체크인되었는지 확인한 후 배포 작업을 수행해야한다고 생각합니다. 이것은 완전히 자동화하는 것이 아닙니다.

인간은 도구를 사용해야합니다. 강력한 스키마 비교 도구가있는 Visual Studio 2010 Professional을 사용하여 배포 스크립트를 생성 및 실행하고 소스 제어 통합을 수행합니다.

1

모든 스키마 변경이 SQL 스크립트를 통해 독점적으로 수행되는 환경을 만들 것을 권장합니다. 어떤 환경에서도 "수동으로"절대로 사용하지 마십시오. 각 개발자는 버그 수정 (또는 새로운 기능)과 관련된 스크립트를 버전 제어 시스템에 커밋해야합니다. 당신은 그 사람의 능력이있는 경우

일반적으로 당신은 (그래서 1.0 내지 1.1, 1.2-1.1에서 하나) 하나의 큰 각 버전의 업그레이드를위한 처음부터 데이터베이스를 생성 스크립트

이있을 것이다 또한 각 버전에 대해 "처음부터"스크립트를 유지하는 것이 매우 편리합니다. 필요 여부는 빈 시스템에 설치하는 빈도에 따라 다릅니다.

우리는 Liquibase를 사용하여이 모든 것을 유지하는 데 매우 좋은 경험이 있습니다. 데이터베이스에 적용된 패치와 업그레이드 중에 실행해야하는 패치를 자동으로 추적합니다. 또한 동일한 이주를 두 번 실행할 수 없습니다.

+0

답장을 보내 주셔서 감사합니다. 귀하의 의견을 높이 평가합니다! –

관련 문제