我有一个使用Liquibase设置的PostgreSQL数据库。当我使用maven运行liquibase:dropAll
时,除了触发函数外,它会丢弃所有内容。是否有一种方法,即使用该maven目标也会触发功能被丢弃?
因为当我在dropAll之后重新应用我的变更集时,它无法创建现有的函数。
答案 0 :(得分:1)
不幸的是没有。实现dropAll的方法是它使用liquibase快照函数来查找要删除的所有对象,除了快照未查找的对象类型之外,它工作正常。快照处理标准类型,如表,列,视图和序列,但不会涉及更多特定于数据库的类型,如触发器,函数,过程,用户定义的类型等。由于快照不知道触发器,dropAll无法知道删除它们
如果您使用的是postgresql,最简单的方法可能就是运行
drop schema public cascade;
create schema public;
如" Drop all tables in PostgreSQL?"而不是使用liqubase dropAll。