有没有一种方法可以在现有数据库中为每个表生成变更日志?

时间:2019-02-01 14:40:19

标签: liquibase

我有一个现有数据库,我想在其上应用liquibase并为每个表生成一个单独的变更日志,以创建当前的数据库方案。

据我所知,只能为整个数据库生成一个大的changelog.xml,这是我在命令行中完成的:

liquibase --driver=oracle.jdbc.OracleDriver \
      --classpath=\path\to\classes:jdbcdriver.jar \
      --changeLogFile=com/example/db.changelog.xml \
      --url="jdbc:oracle:thin:@localhost:1521:XE" \
      --username=scott \
      --password=tiger \
      generateChangeLog

但是,我想为每个表生成一个单独的changelog.xml。假设,如果数据库有三个表:蝴蝶表,花朵表和蜜蜂表,则应生成表:changelog_butterfly.xml,changelog_flower.xml和changelog_bee.xml或类似的表。

任何想法都值得赞赏。

1 个答案:

答案 0 :(得分:1)

documentation来看-没有捷径可以做到这一点。

而且,从逻辑的角度来看:如果目标是每个表都有更新日志,那么外键的变更集又放在哪里?由于它们属于涉及两个表 - 有矛盾吗:)

解决矛盾的一种方法可能是将外键放在单独的变更日志中。但是,它看起来不太方便,尤其是考虑到在初始设置后迁移数据库时。

无论哪种方式,here are some recommendations都是关于变更日志的组织方式。