2009-06-16 5 views
5

경고 : 오랜 질문.데이터베이스의 여러 가지 버전을 어떻게 관리하고 관리합니까?

[질문] 스크립트 버전 제어 아래의 문제에 설명 된대로 전략, 데이터베이스 당 지점을 가지고있는 경우

.

분기 수를 줄이려고 할 때 데이터 마이그레이션 문제를 어떻게 관리합니까?
데이터 이전의 일부로 비용이 발생합니까?

기본적으로 변환 스크립트는 마이그레이션 할 때 만들어야합니다.

더 좋은 방법이 있습니까?
두 가지 문제를 동시에 해결할 수 있습니까?
모범 사례는 무엇입니까?

[배경]는 내 직장에서

우리는 3 가지가있는 제품이있다. "최신 및 가장 큰"변경 사항이있는 메인 라인은 출시 준비가 불필요합니다. 효과가

  • 버전 B는
  • 버전 A (이름이 유죄를 보호하기 위해 변경되었습니다)
  • 마약을 정맥에 주사하기 때문에이 지점의

을 (이름은 유죄를 보호하기 위해 변경되었습니다) 3 버전의 데이터베이스. 코드 버전 제어가 매우 쉽지만 데이터베이스 버전 제어가 어려워 보입니다.

읽는 중 Do you use source control for your database items? 가장 좋은 방법은 각 개체/테이블에 대한 모든 작성 스크립트를 내보내는 것입니다. 참고 : 큰 스크립트 하나 또는 여러 스크립트 또는 하이브리드로 관리하는 방법은 기사에 따라 선호하는 것입니다.

본인은 이에 동의하며 그것이 완료되지 않은 이유에 대해 문의했습니다.

현재 DBA는 스크립트를 분기로 분기하는 것을 거부합니다. 게으름을 변명으로 삼는 이유는 데이터 마이그레이션으로 시간을 절약하기 위해서입니다. 효과적으로 모든 버전에서 데이터베이스 변경 사항이 강제로 유지 관리됩니다.

모든 스크립트는 버전 제어되며 메인 라인에서만 유지 관리됩니다. 버전 A와 버전 B에는 해당 분기에서 실행할 변경 스크립트를 나타내는 자체 특수 파일이 있습니다. 문제는 변경 스크립트가있을 때 발생합니다 (예 : 버전 A에 적용됨). 버전 B에는 변경 사항 중 일부만 필요합니다. DBA에게 각 지점에 적용 할 패치를 나타내는 파일을 업데이트하는 것은 개발자에게 달려 있습니다. 변경 스크립트의 일부를 수동으로 적용하려면 너무 많은 수동 개입이 필요합니다.

버전 A의 데이터베이스를 업데이트하려면 모든 패치가 파일을 적용 할 버전 A로 추출해야합니다.

[SCENARIO]

  • 3 개 버전 존재 상술.
  • 데이터베이스가 버전 A로 변경됩니다.
  • 코드가 버전 B에서 A로 병합되어 버전 B를 제거 할 수있는 지점 통합.
  • 데이터베이스에서도 마찬가지입니다.

희망적입니다.

+0

데이터베이스 스크립트가 현재 버전 관리되고 있는지 여부를 명확히 할 수 있습니까? 또는 미래에 소스 컨트롤을 사용하여 데이터베이스의 여러 지점을 관리 할 계획입니까? 또한 데이터베이스를 자주 병합하는 방법에 관한 질문입니까, 아니면 한 번만 지점을 없앨 수 있습니까? –

+0

위의 문제가 무엇인지 명확히했습니다. 버전 제어 전략이 제대로 작동하지 않는 이유는 분기를 피할 수 있기 때문입니다. 이해할 수없는 이유 때문입니다. 데이터 마이그레이션에 큰 비용이 들었 기 때문에 문제에 대한 내 이해가 있다고 생각했습니다. 그러나 존 손더스 (John Saunders)가 말한 것처럼 변경 스크립트가 처음 생성 될 때는 일반적으로 고려됩니다. 모든 도움을 주셔서 감사합니다. 정상적인 버전 제어 전략과 같이 보입니다. –

답변

3

Chapter 8Eric Sink's Source Control HOW TO에서 살펴보십시오. 소스 컨트롤의 기능을 이해하는 데 유용한 리소스입니다.

+0

nikmd23, 링크를 제공해 주셔서 감사합니다. 소스 제어 병합은 실제로 참조한대로 수행됩니다. 그러나 여러 데이터베이스 변경이 발생하고 스크립트 변경 사항이 분기 전반에 올바르게 병합되는 경우 어떻게해야합니까? 변환 스크립트를 작성하는 데 투자해야하는 시점에 변경 사항을 통합하기 위해 지정된 사람이 나중에 말하면 발생합니다. 문제는 데이터베이스 스크립트 제어가 아니라 데이터 마이그레이션 비용입니다. . 그 주위에 저기 있니? 예를 들어 데이터 마이그레이션을위한 모든 변경 사항에 대한 스크립트를 유지 관리 할 수 ​​있습니까? 내가 놓친 것이 있습니까? –

+1

모든 스키마 변경은 데이터 마이그레이션을 고려해야합니다. 경우에 따라 스키마를 변경하더라도 데이터가 변경되지 않아도됩니다. 때로는 데이터 변경이 필요할 수 있습니다. 이 경우 데이터를 변경하기 위해 이러한 변경 스크립트가 필요하지만 필요할 수도 있습니다. –

관련 문제