2010-05-05 6 views
8

새 데이터베이스 프로젝트 (VS2008 내)로 작업하고 있고 데이터베이스를 처음부터 개발 한 적이 없어서 소스 제어 내에서 데이터베이스를 관리하는 방법을 즉시 살펴 보았습니다. 케이스, Subversion).소스 제어에서 내 데이터베이스 관리

나는이 게시물을 포함하여 SO에 대한 정보를 발견했습니다 : Keeping development databases in multiple environments in sync. One of the answers in particular은 여러 유용한 정보를 제공하는 링크를 가리 킵니다.

내가 데이터베이스 변경을 관리하는 방법을 설명하는 K. Scott Allen이 series of posts을 읽었습니다. 내 독서에서 (그리고 제 질문의 noobishness을 용서해주십시오), 마치 데이터베이스 자체가 결코 저장소에 체크인되지 않은 것처럼 보입니다. 오히려 테스트 데이터 (스크립트로도 채워짐)와 함께 데이터베이스를 빌드 할 수있는 스크립트가 저장소로 체크인됩니다. 궁극적으로 이것은 개발자가 자신의 앱을 테스트 할 때 빌드 프로세스의 일부인 스크립트가 실행된다는 것을 의미합니다. 이렇게하면 데이터베이스가 최신 상태이지만 모든 개발자의 컴퓨터에서 로컬로 실행됩니다.

내 말이 맞습니다 (실제로 올바르게 읽는 경우). 그러나, 내가 뭔가를 놓친다면, 나는 교정이나 추가 지침을 감사하겠습니다. 또한 내가 묻기를 원하는 또 다른 질문 - 이것은 이 아닌mdf 또는 ldf Visual Studio에서 만든 파일을 확인해야 함을 의미합니까?

도움과 추가 통찰력을 가져 주셔서 감사합니다. 항상 감사합니다.

+0

결국 어떤 접근 방식을 사용했는지 물어볼 수 있습니까? 당신은 dev 데이터베이스가 생산에서 회수 ('좋은'테스트 데이터를 보장)하거나 빌드 프로세스의 일부로 데이터를 채우고 있습니까? –

+1

@David - 현재 우리는 빌드 프로세스의 일부로 dev 데이터베이스를 채 웁니다. 이 시점에서 우리는 데이터의 크기를 모방 할 필요가 없습니다 (우리는 나중에 그렇게 할 것입니다). 근시안적인 시각 일 수도 있지만 (현재 처음으로이 작업을 수행 한 경우), 현재로서는 dev에 데이터베이스를 사용할 수있는 서버가 없기 때문에 자원 가용성에 의해 부분적으로 제한됩니다. – JasCav

+0

그래서 제대로 이해한다면 서버가이 크기를 수용 할 수 없기 때문에 프로덕션 DB를 사용하지 않고 있습니까? 아니면 다른 이유가 있습니까? –

답변

6

맞습니다. 데이터베이스 파일 자체가 아니라 스크립트를 체크인해야합니다.

데이터 자체가 프로덕션의 데이터 크기 (또는 새 데이터베이스의 경우 의도 된 데이터 크기)를 모방하지 않으면 테스트 데이터를 사용하여 빌드하는 것을 좋아하지 않습니다. 왜? 100 개의 레코드가있는 테이블에 코드를 작성해도 10,000,000 개의 레코드가있을 때 적시에 실행되는지 알려주지 않기 때문입니다. 나는 작은 데이터 세트가 개발을 위해 괜찮다고 생각하는 사람들로부터 너무 많은 나쁜 디자인 선택을했다.

여기서 devs는 상자에 별도의 데이터베이스 (일반적으로 SAN에 연결된 서버가 아니어야하므로 데이터베이스의 크기를 제한 함)를 허용하지 않으며 대신 dev 데이터베이스와 호환되어야합니다. 정기적으로 prod에서 새로 고침 (그리고 모든 새로운 dev 스크립트가 실행) 데이터를 올바른 크기로 유지합니다. 나는 당신의 dev datbase 환경이 장비 구성, 데이터베이스의 크기 등을 가능한 한 밀접하게 일치시키는 것이 중요하다고 생각합니다. 오랜 시간을 보내는 것보다 실망하지 않는 것이 아무것도 없습니다. 시스템이 너무 느려서 즉시 중단되었습니다.

내 비누 상자를 지금 내리고 있습니다.

+1

@HLGEM - 테스트 데이터에 대한 좋은 지적. 그것은 기사 중 하나에서 실제로 지적되었습니다. – JasCav

1

DataConstructor를 사용하지만 필자가 작성했기 때문에 편향되어 있습니다.

2

소스 코드 제어가 바이너리 파일이 아닌 텍스트 파일 작업에 가장 적합하기 때문에 스크립트를 체크인하는 것이 좋습니다. 스크립트 파일의 차이점은 데이터베이스 변경과 관련된 나머지 코드 변경의 일부로 쉽게 검토 할 수 있습니다. 데이터베이스 스크립트를 체크인하는 것 외에도 데이터베이스 스키마 스냅 샷을 체크인합니다. 이 데이터베이스 스키마 스냅 샷을 사용하면 프로덕션의 스키마가 주어진 버전의 제품에 대한 예상 스키마와 일치하는지 확인할 수 있습니다. 그 외에도 데이터베이스 스키마 스냅 샷은 일반 텍스트 편집기를 사용하여 열과 테이블을 검색하는 편리한 방법입니다.

0

당신은 데이터베이스 스크립트를 관리 할 수 ​​Liquibase 같은 도구를 사용할 수 있습니다. 이것은 실제로 데이터베이스 업그레이드 프레임 워크이므로 이미 실행 된 단계를 추적하므로 프로덕션을 업그레이드하려는 경우 (예 : 새 단계 만 실행).

관련 문제