0

我有spring boot项目,postgresql作为主数据库,H2作为内存数据库进行测试。我添加了一个 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>();
4

1 回答 1

1

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

于 2017-11-29T23:05:14.573 回答