2017-11-29 21 views
0

postgresql을 메인 DB로 사용하고 H2를 테스트를위한 인 메모리 DB로 사용하는 스프링 부트 프로젝트가 있습니다. 일부 사용자 정의 로직을 실행하기 위해 PL/pgSQL 프로 시저를 추가 했으므로 이제 테스트가 중단됩니다. 어떻게 liquibase 사용자는 일반적으로 이러한 경우를 해결합니까?단일 프로젝트를위한 Liquibase DB 특정 스크립트

내 절차는 다음과 같습니다

질문에 대한 코멘트에서 언급 한 바와 같이
CREATE OR REPLACE FUNCTION <name>() RETURNS trigger AS' 
      BEGIN 
       DELETE FROM gator_device 
       WHERE id = OLD.... 
       RETURN NULL ; 
      END;' 
      LANGUAGE plpgsql; 

      CREATE TRIGGER <name> 
      AFTER DELETE ON <name> 
      FOR EACH ROW EXECUTE PROCEDURE <name>(); 
+1

'dbms = "postgresql"을 사용하여 해당 함수를 생성하는 changeSet을 표시하시오. " –

+0

무엇을 의미합니까? – asdasdsdf

+0

http://www.liquibase.org/documentation/changeset.html#available-attributes –

답변

1

, 당신은 속성 dbms="postgresql"과 기능을 작성하는 변경 집합을 표시해야합니다. Liquibase가 데이터베이스에 적용 할 변경 집합을 결정할 때 변경 집합이 특정 데이터베이스 형식에서만 작동하는 경우 변경 집합을 건너 뛸 수 있습니다. 완전히 다른 플랫폼을 사용하려면 지원하려는 각 데이터베이스에서 작동하는 '동등한'변경 세트를 작성하고 각 변경 세트가 지원하는 dbms로 각 옵션을 표시해야합니다.