在现有架构上使用liquibase

pat*_*pat 9 liquibase

我已经了解了如何从现有模式生成changelog.xml.这很好,但我有现有的系统,我不想触及,除了引入新的变化.我还有全新的系统,需要应用所有更改.

因此,我想让liquibase仅在现有系统上运行时执行从changeset X迁移.即系统的DB位于修订版X-1(但没有liquibase sys表),我不希望应用任何先前的迁移.

非常感谢,帕特

fgl*_*lez 14

我会推荐一种略有不同的方法,正如Liquibase论坛帖子中所评论的那样

  1. 从现有架构生成更改日志.liquibase CLI可以为您做到这一点.我通常采用生成的XML并稍微平滑一下(将组相关更改转换为单个更改日志,执行特定于供应商的清理等等),但Liquibase完成了大部分工作.

  2. 针对现有数据库(changelogSync命令)运行该更改日志,但仅将其标记为已应用(不实际修改架构).

  3. 使用liquibase从该点开始应用新的更改.

  • 用于步骤2的命令(在Liquibase 2.x中)是'changelogSync'. (2认同)

Tho*_*ler 4

我认为最简单的方法是首先在空数据库上执行初始设置,然后导出 liquibase 插入表中的条目DATABASECHANGELOG。然后,我导出这些条目并将它们手动插入目标数据库之一的DATABASECHANGELOG表中,这样 liquibase 就不会再次在那里执行“更改”。

当然,我会在测试机器上使用测试转储来测试所有这些...:)