在现有架构上使用liquibase

时间:2011-08-02 12:34:03

标签: liquibase

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

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

非常感谢, 专利

2 个答案:

答案 0 :(得分:14)

我建议采用稍微不同的方法,如Liquibase forum thread

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

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

  4.   
  5. 使用liquibase从该点开始应用新的更改。

  6.   

答案 1 :(得分:2)

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

当然,我会在测试机器上测试所有测试转储......:)