Liquibase - 常见的列?

时间:2014-09-15 03:34:05

标签: java liquibase

在我的数据库中,每个表都有4个常用列 - DATE_CREATEDUSER_CREATEDDATE_MODIFIEDUSER_MODIFIED,我想隐式地将此规则传播到所有新表。

是否可以在不必手动生成liquibase脚本的情况下执行此操作?

3 个答案:

答案 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,表或实体名称以及您的四列名称。