다음 설정을 고려하십시오.
- 생산 DB
- 새로운 기능을 활성화하기 위해 스키마를 변경하는 개발 데이터베이스
새로운 기능의 개발이 완료되면 pg_dump --schema-only
두 DB가 동일 할 때까지 prod db 스키마를 수동으로 업데이트해야 합니다. 이 프로세스는 오류가 발생하기 쉽고 지루합니다.
그래서 나는 할 수있는 도구를 찾고 있습니다.
- 두 스키마 간의 차이점에 대한 요약을 표시합니다 (예 :)
diff
. 나는 단지 스키마의 단순한 텍스트 차이를 찾고 있지는 않지만 "테이블X
에는 새로운 열이 있다"와 같은 결론을 도출 할 수있는보다 정교한 도구를 찾고있다Y
. - (같은 다른 하나의 스키마를 변환 할 SQL 코드를 자동 생성
patch
)
2
diff를 수행하는 대신 마이그레이션 스크립트를 제어 된 방식으로 관리해야합니다. DBMS에 대한 임시 DDL 변경을 수행하지 말고 항상 변경 사항을 스크립트 (버전 제어 시스템에 저장 됨)에 넣은 다음 스크립트를 적용하십시오. Liquibase 또는 Flyway와 같은 도구를 살펴보십시오
—
a_horse_with_no_name
@a_horse_with_no_name 감사합니다. 이 방법으로도 diff / patch 도구를 사용하면 인생을 더 편하게 만들 수 있습니다. BTW, 나는 노래를 윙윙 거리는 것을 도울 수 없다.
—
Adam Matan
pg_comparator : pgfoundry.org/projects/pg-comparator를 사용해 볼 수 있습니다 (하지만 사용하지는 않았습니다). 즉 더 많은 제어 스키마 관리를위한 좋은 출발점이 될 수 있도록 내가 틀리지 않는 경우 Liquibase가 아니라 DIFF 내장하고 Liquibase의 변경 집합으로 결과를 방출했다
—
a_horse_with_no_name
감사. 의견을 올리려면 답변으로 게시해야합니까?
—
Adam Matan