Liquibase - common columns?



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

有可能做到这一点而不必手动生成liquibase脚本吗?

据我所知,使用liquibase是不可能的。

原因很简单:

如果您稍后改变主意并添加/删除其中一个默认列,该怎么办?如果你想更改所有的表,那么liquibase是不可能的,因为这意味着要更改所有的变更集,这是不允许的。

使用DSL生成liquibase脚本,然后可以向每个实体添加特定的列集,但使用liquibase的工作方式,自动方式会很困难。

Liquibase中没有任何内置功能来支持这一点。

您最简单的选择是使用纯XML级别的XML文档实体,因此对Liquibase是透明的。它们将允许您将通用XML附加到变更日志文件中。

更复杂的方法是使用Liquibase扩展系统(http://liquibase.org/extensions)它允许您重新定义将changeSet转换为SQL的逻辑。这将允许您注入所需的任何逻辑,包括通用数据类型、标准列或任何其他逻辑。

我不这么认为。

我的建议是,不要在所有表中添加上面提到的4列,因为对于现有的条目,可以在所有的表中保留null值。

请创建一个表,如主键id、表或实体名称以及您的四列名称。

相关内容

  • 没有找到相关文章

最新更新