合并 LiquiBase 变更集

Merging LiquiBase changesets

我正在 LiquiBase 中开发一个带有数据库版本控制的系统。该系统仍处于 pre-alpha 开发阶段,有许多更改已恢复或由其他更改补充(删除表格,添加和删除列)。

当前的变更集反映了整个开发历史,有很多失败的实验,这个整体是在初始化数据库时推出的。

因为没有发布版本,我可以从头开始并在单个 XML 变更集中拉取实际的数据库状态。

有没有办法告诉 LiquiBase 将所有更改集合并到一个文件中,或者唯一的方法是逐手执行?

只需使用您现有的数据库来生成从现在开始使用的更改日志。为此,您可以从命令行使用 generateChangeLog 命令,它将生成包含代表数据库当前状态的所有变更集的变更日志文件。您可以在项目中使用此文件作为初始数据库创建文件,以用于空数据库。这是 link to docs.

Liquibase 文档中有一个页面详细讨论了这种情况: http://www.liquibase.org/documentation/trimming_changelogs.html

总而言之,他们建议您不要打扰,因为合并您的变更日志既有风险又回报率低。

如果您确实想推进此操作,那么按照@veljkost 的建议,使用generateChangeLog 重新启动更新日志可能是最简单的方法。这记录在 http://www.liquibase.org/documentation/existing_project.html