单个项目的Liquibase DB特定脚本

时间:2017-11-29 21:42:46

标签: spring postgresql spring-boot liquibase h2db

我有一个spring post项目,postgresql作为主DB,H2作为内存DB进行测试。我添加了一个PL / pgSQL程序来执行一些自定义逻辑,现在我的测试停止了。 liquibase用户通常如何解决此类案件?

我的程序是:

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 个答案:

答案 0 :(得分:1)

如您对问题的评论中所述,您需要标记使用属性dbms="postgresql"创建函数的变更集。当Liquibase决定将哪些更改集应用于数据库时,如果该更改集仅适用于某些数据库类型,则它可以跳过更改集。要完全跨平台,您需要编写等效的&#39;适用于您要支持的每个数据库的更改集,并使用每个更改集支持的dbms标记每个数据集。