2014-09-18 3 views
0

나는 상황을 처리해야하는데, 나는 권장 된 모범 사례에 따라 구조화 된 liquibase를 가지고 있습니다. 나는 우리의 응용 프로그램 그룹에서은 공통적 인 sql 파일을 사용하여 liquibase를 사용합니다.

Master XML 
    -->Release XML 
    -->Feature XML 
     -->changelog XML 

아래에 주어진 변경 로그 XML은 구조화 가지고, 우리는 때 UpdateSQL가 통합 된 SQL 파일을 생성하고 우리의 DBA 그룹을 통해 실행 변경을 얻기 위해 실행합니다.

그러나 실제 문제는 모든 반복 작업 동안 공통된 SQL 문 집합을 실행하는 것입니다. 마찬가지로

ALTER SESSION SET CURRENT_SCHEMA=APPLNSCHEMA 

DBA는 변경 사항을 SYSTEM으로 실행하지만 대상 스키마는 APPLNSCHEMA입니다.

Liquibase 변경 로그에 이러한 반복적 인 문장을 포함시키는 방법.

답변

0

삽입하는 확장 기능 (http://liquibase.org/extensions)을 작성할 수 있습니다. changeLog 당 수행해야하는 경우 필요한 SQL을 실행하는 새 changeSet을 자동으로 작성하고 추가하도록 XMLChangeLogParser를 확장하는 것이 가장 효과적 일 수 있습니다.

0

필자가 아는 한, Liquibase가 스스로 이것을 할 수있는 방법이 없다. 필자는 Liquibase를 좋아하는 스크립팅 언어로 포장하여 Liquibase를 실행하는 명령 "generateSQLforThoseCrazyDBAs"를 실행 한 다음 Liquibase가 생성 한 출력에 필요한 SQL을 앞에 추가하는 것이 좋습니다.

1

'runAlways'속성을 true로 설정하고 SQL을 포함하는 changeSet을 만들 수 있습니다.