2012-10-16 4 views
0

그래서 내 모든 데이터베이스 변경에 대해 SQL 스크립트를 근본적으로 만들고있어 소스 제어에 커밋 될 수 있지만 SQL에 차등이 있어야합니까?소스 제어 데이터베이스 - 전체 또는 차등 SQL?

예를 들어, 초기 커밋에 'create table'이 있고 이후 업데이트에서이 테이블에서 열을 제거해야하는 경우 'create'문을 수정하여 열이나 행을 포함하지 않도록합니다 변경하지 않고 'alter table'문을 추가합니까?

차이가 있다면 어떤 상태에서든 데이터베이스를 가져 와서 나중에 상태로 업데이트 할 수 있습니다. 가득 차있는 반면에 항상 새로운 데이터베이스로 시작해야합니다.

+0

차동 작용. 당신과 당신의 환경에 적합한 것을 사용하십시오. –

+0

이것은 비정상적인 방식으로 들립니다. 일반적으로 가능한 한 정적 인 데이터베이스 스키마를 유지하고 데이터 만 변경하는 것이 가장 좋습니다. 왜 계속해서 데이터베이스 구조를 변경하고 싶습니까? – snibbets

+0

구조는 응용 프로그램의 일반적인 개발 과정에서 변경됩니다. –

답변

1

둘 다. 각 DB 객체에 대해 개별 "create"스크립트가 있습니다. 이것은 처음부터 DB를 만드는 데 사용할 수 있습니다. 또한 시각적으로 차이를 쉽게 적용 할 수 있도록 변경 내용을 커밋합니다. 변경 스크립트를 읽는 것 외에도 객체의 작성 스크립트가 변경된 것을 볼 수 있습니다.

또한 순서대로 정렬하고 적용하기 쉬운 방식으로 명명 된 차등 SQL을 스크립팅합니다. 이렇게하면 X 지점에서 현재 스키마까지 DB를 가져올 수 있습니다.

+0

만약 처음부터 db를 생성 할 필요가 없다면? (응용 프로그램을 제작하면 왜해야합니까?) – meriton

+1

@meriton 아마도 새로운 고객, 호스트 또는 테스트/개발 환경을 위해 응용 프로그램의 새 인스턴스를 배포 할 수 있습니다. 여전히 동일한 결과에 대한 모든 업데이트 스크립트를 실행할 수없는 이유는 알 수 없습니다. –

+0

X가 무엇인지 어떻게 알 수 있습니까? 현재 버전의 행이있는 DB의 테이블? –