我有一个现有数据库,我想在其上应用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或类似的表。
任何想法都值得赞赏。
答案 0 :(得分:1)
从documentation来看-没有捷径可以做到这一点。
而且,从逻辑的角度来看:如果目标是每个表都有更新日志,那么外键的变更集又放在哪里?由于它们属于涉及两个表 - 有矛盾吗:)
解决矛盾的一种方法可能是将外键放在单独的变更日志中。但是,它看起来不太方便,尤其是考虑到在初始设置后迁移数据库时。
无论哪种方式,here are some recommendations都是关于变更日志的组织方式。