2017-02-28 4 views
1

Liquibase는 데이터베이스 변경을 조정하는 훌륭한 도구입니다. 나는 클러스터 환경에서 시작할 때 liquibase 변경 집합을 실행하고있다. 첫 번째 애플리케이션 인스턴스는 (databasechangeloglock에) 잠금을 넣고 변경 집합을 실행합니다. 그들이 자물쇠를 잡고 다른 인스턴스는 MARK_RAN로 excuted changesets을 표시합니다. 여태까지는 그런대로 잘됐다.liquibase databasechangelog가 컴퓨터 이름을 표시하지 않습니다.

최근에 문제가 발생하여 데이터베이스 변경 로그 테이블의 세부 사항을 살펴 보았습니다. 메타 정보에 인스턴스 이름 (컴퓨터 이름)이 표시 될 것으로 예상했습니다. 그러나 나는 그것을 거기에서 발견 할 수 없었다. 인스턴스 이름을 메타 정보로 databasechangelog 테이블에 쓰도록 liquibase 동작을 사용자 정의하는 방법이 있습니까?

감사합니다.

답변

1

아마도 이것은 Liquibase 자체에 대한 변경 일 것입니다. 설정과 관련하여 아무 것도 할 수 없습니다. DATABASECHANGELOGLOCK 테이블에는 해당 목적으로 열 LOCKEDBY이 있지만 DATABASECHANGELOG 테이블은 신경 쓰지 않도록 설계되었습니다. 변경 사항이 배포되었을 때 Liquibase를 실행 한 사람을 추적하고 싶다면 Datical에서 수행중인 작업을 수행해야합니다. Liquibase를 래핑하는 사용자 정의 코드가 있습니다. 배포가 진행되는 동안 Liquibase의 이벤트를 수신하는 클래스가 있으며 그 정보를 '감사'데이터베이스에 기록하여 모든 정보를 추적합니다.

+0

답변 해 주셔서 감사합니다. 고맙습니다! – aug70co