使用liquibase从最新模式重新开始

时间:2014-06-25 11:43:19

标签: liquibase

我在ORCID上使用liquibase 3.2.0,发现它非常有用。

我们现在在原始架构之上有超过200个changeSet。

这些在单元测试期间运行多次,因为我们使用的是内存数据库(hsqldb)。

我想重置' liquibase通过从当前模式创建一个新的install.xml,这样我们就不必每次都运行所有的changeSet。

但是,生产数据库(postgres)有一个包含所有旧changeSet的databasechangelog表,因此它将尝试应用新的install.xml。

如何在不引起生产问题的情况下从新的install.xml重新开始?

威尔

1 个答案:

答案 0 :(得分:1)

从头开始重新启动changeLog与将liquibase添加到现有项目相同,即discussed in documentation here

但是,我通常建议不要重置您的changeLog,因为通常成本会超过性能上的任何好处。您的200 changeSet更改日志已经过全面测试,您知道它是正确的,而手动重新生成或使用generateChangeLog重新生成的内容很容易产生可能导致问题的细微差别。

对于现有数据库,解析changelog文件并将其与databasechangelog的内容进行比较的启动成本非常低,无论changeSets的数量是多少。

对于新的数据库,特别是内存数据库,DDL操作通常非常快,并且通过200个changeSet建立数据库的速度可能与在50个changeSet中构建它的速度差别不大。

如果存在性能差异,我通常看到的是有一些孤立的changeSet是问题,例如创建索引然后丢弃然后再创建它。我建议寻找可能存在问题的任何changeSet,并仔细删除或组合它们与更改日志的批量重做。