database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 8467 게시물 읽기
No. 8467
데이터베이스 DDL 버전 관리 기법 문의합니다
작성자
김상기(ioseph)
작성일
2009-09-08 12:13
조회수
6,907

개발 코드들은 CVS나, SVN 같은 놈으로 버전 관리를 하죠.


그런데, DB 관련 코드들은 어떻게 버전관리를 하면 가장 합리적일까요?


DDL이 바뀌어 버렸는데, 그것을 Rollback 하겠다면, 그 해당 자료를 사용하는 제반 모든 응용프로그램들의 코드들 조차 Rollback 해야하는

이런 응용 프로그램과의 관계성도 고민을 해야하고,

버전관리 기법의 중요한 개념 가운데 하나인 Branch 기능도 DB 관리에서 필요한 것 같고,

버그 트래킹에서 DB 측 문제라면, 그 트래킹 이슈와 DB 작업 내역도 연결되어야겠고,


이런 저런 관리측 문제들이 실실 고민이 되네요.


어떤 방법이, DBA 작업량을 최대한 줄이면서, 투명하게 작업할 수 있을까요?


ER 문서의 리비전 관리를 한다?

그럴것이면 ER 문서안에 DB에 대한 모든 정보가 담겨야할터인데, 현재, PostgreSQL 안에는 그런 툴이 있는 것도 아니고.


현재까지 고민한 것으로는 DB의 객체 단위 모든 DDL sql 구문 파일을 따로 다 생성해 두고,

그것에 대한 저장소를 따로 마련하고, 모든 작업은 그 저장소 기반으로 작업을 하면 될터인데,

이도, 문제가 DB를 완벽하게 새로 구축할 경우, 각 객체들의 의존성부분에 딱 걸리더군요.


참, 답이 안나오는 부분인데, 혹 이 부분에 대해서 고민을 해 보셨던 분이 있으시면 노하우 좀 알려주세요.

이 글에 대한 댓글이 총 1건 있습니다.

제가 지금 고민하고 계신 문제를 잘 이해했는지 모르겠네요.

고려해야할 사항을 좀 더 명확히 정리해보면 더 깊이 고민해볼 수 있을 것 같은데...

 

일단 전 DB 스키마의 버전과 애플리케이션 버전이 종속적인 관계이기 때문에 코드 관리 저장소에 DDL도 같이 관리해서 tag나 브렌치가 동시에 적용되게 합니다.

그리고 스키마를 변경했다면 DDL 문을 바꾸는 것은 물론 이전 버전에서 마이그레이션하는 스크립트도 같이 작성합니다.

pgsql-all.sql 에 전체 DB 빌드 DDL 문을 넣어 둔다면 pgsql_2.1-2.2.sql은 2.1 버전에서 2.2 버전으로 이관하는 쿼리들을 넣어두는 거죠. 이렇게 이관용 쿼리 파일은 버전업이 될 때마다 계속 만들어집니다.

 

좀 다른 부분을 얘기한 건가요?

 

토론 형식으로 풀어보면 좋을 것 같은데... 생각을 얘기해주시겠어요?

박성철(gyumee)님이 2009-09-09 22:33에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8471다른 테이블 데이터를 로드한 후에 삽입하려면 ? [2]
souler
2009-09-09
6642
8470pg_dump 후 pg_restore 할 때 다른 이름의 테이블에 복구하는 방법? [2]
김대청
2009-09-09
7725
8468휴대폰 번호 입력시의 사용자 정의 형식에 대해서 [2]
souler
2009-09-08
6962
8467데이터베이스 DDL 버전 관리 기법 문의합니다 [1]
김상기
2009-09-08
6907
8466[Greenplum] Copy 사용시 Select 문장 관련 [1]
강가딘
2009-09-06
6578
8440구분자로 나누어진 문자열을 Row로 변환 [1]
최인한
2009-09-04
7279
8439select 다시 질문.. ㅠ.ㅠ
초보
2009-09-04
6331
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다