关于postgresql:liquibase:dropAll也应该删除触发器函数

liquibase:dropAll should also delete trigger functions

我有一个使用liquibase建立的PostgreSQL数据库。当我使用maven运行liquibase:dropAll时,除了触发功能,它会让我失去所有功能。有没有一种方法可以让maven的目标同时删除triggerfunctions?

因为当我在DropAll之后重新应用我的变更集时,它无法创建已经存在的函数。


不幸的是,没有。实现Dropall的方法是使用liquibase snapshot函数查找要删除的所有对象,除快照未查找的对象类型外,这些对象都可以正常工作。快照处理表、列、视图和序列等标准类型,但不进入更多特定于数据库的类型,如触发器、函数、过程、用户定义的类型等。由于快照不知道触发器,Dropall无法删除它们。

如果您使用PostgreSQL,最简单的方法可能是运行

1
2
DROP schema public cascade;
CREATE schema public;

如"在PostgreSQL中删除所有表"中所述?而不是使用利口酒滴管。