【发布时间】:2011-10-18 05:37:25
【问题描述】:
我已了解如何从现有架构生成 changelog.xml。没关系,但我不想碰现有的系统,除了带来新的变化。我也有需要应用所有更改的全新系统。
所以,我想让 liquibase 在现有系统上运行时仅从变更集 X 执行迁移。 IE。该系统的数据库处于修订版 X-1(但没有 liquibase sys 表),我不希望应用任何先前的迁移。
非常感谢, 帕特
【问题讨论】:
标签: liquibase
我已了解如何从现有架构生成 changelog.xml。没关系,但我不想碰现有的系统,除了带来新的变化。我也有需要应用所有更改的全新系统。
所以,我想让 liquibase 在现有系统上运行时仅从变更集 X 执行迁移。 IE。该系统的数据库处于修订版 X-1(但没有 liquibase sys 表),我不希望应用任何先前的迁移。
非常感谢, 帕特
【问题讨论】:
标签: liquibase
我会推荐一种稍微不同的方法,正如 Liquibase forum thread 中所评论的那样
从现有架构生成变更日志。 liquibase CLI 可以为您做到这一点。我通常将生成的 XML 整理一下(将相关更改分组到单个更改日志中,进行特定于供应商的清理等),但 Liquibase 会完成大部分工作。
针对现有数据库运行该更改日志(
changelogSync命令),但仅将其标记为已应用(不实际修改架构)。使用 liquibase 从那时起应用新的更改。
【讨论】:
我认为最简单的方法是首先在一个空数据库上执行初始设置,然后导出 liquibase 确实插入到DATABASECHANGELOG 表中的条目。然后我会导出这些条目并将它们手动插入其中一个目标数据库到他们的DATABASECHANGELOG 表中,因此 liquibase 不会再次执行“更改”。
当然,我会在测试机器上使用测试转储来测试所有这些...:)
【讨论】: