10

我已经阅读了有关如何从现有架构生成 changelog.xml 的信息。这很好,但我不想接触现有的系统,除非带来新的变化。我也有全新的系统,需要应用所有更改。

所以,我想让 liquibase 在现有系统上运行时仅从变更集 X 执行迁移。即该系统的数据库处于修订版 X-1(但没有 liquibase sys 表),并且我不希望应用任何先前的迁移。

非常感谢,帕特

4

2 回答 2

14

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

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

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

  3. 从那时起,使用 liquibase 应用新的更改。

于 2011-10-24T08:47:25.357 回答
4

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

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

于 2011-08-02T12:48:54.480 回答