在我的数据库中,每个表都有4个常用列 - DATE_CREATED
,USER_CREATED
,DATE_MODIFIED
,USER_MODIFIED
,我想隐式地将此规则传播到所有新表。
是否可以在不必手动生成liquibase脚本的情况下执行此操作?
答案 0 :(得分:2)
使用liquibase是不可能的(据我所知)。
原因很简单:
如果您改变主意并稍后添加/删除其中一个默认列,该怎么办?如果你想更改所有表格,那么liquibase就无法做到这一点,因为这意味着要更改所有变更集,这是不允许的。
使用DSL生成liquibase脚本然后你可以为每个实体添加一组特定的列,但liquibase的工作方式很难以自动方式。
答案 1 :(得分:2)
Liquibase中没有任何内容可以支持这一点。
最简单的选择是使用纯XML级别的XML文档实体,因此对Liquibase透明。它们允许您将常用XML附加到更改日志文件中。
更复杂的方法是使用Liquibase扩展系统(http://liquibase.org/extensions),它允许您重新定义逻辑以将changeSets转换为SQL。这将允许您注入所需的任何逻辑,包括常见数据类型,标准列或其他任何逻辑。
答案 2 :(得分:1)
我不这么认为。
我的建议是,不要在所有表中添加上面提到的4列,因为可以在现有条目的所有表中保留空值。
请创建一个表,如主键ID,表或实体名称以及您的四列名称。