如何将 运行 liquibase changelogSyncSQL 或 changelogSync up to a tag and/or 标签?

How to run liquibase changelogSyncSQL or changelogSync up to a tag and/or labels?

我正在将 liquibase 添加到已有表和数据的现有项目中。 我想知道如何将 changelogSync[SQL] 的范围限制为可用更改的子集。

背景

我已经 运行 liquibase generateChangeLog 捕获当前状态并将其放入 src/main/resources/db/changelog/changes/V2021.04.13.00.00.00__init01.yaml.

我还添加了另一个变更集来满足新文件中的一些新要求。我们称它为 src/main/resources/db/changelog/changes/V2021.04.13.00.00.00__new-feature.yaml.

我添加了一个主更新日志文件 src/main/resources/db/changelog/db.changelog-master.yaml,内容如下:

databaseChangeLog:
  - includeAll:
      path: changes
      relativeToChangelogFile: true

我现在想确保当我 运行 liquibase changelogSync[SQL] 针对特定版本的数据库时,范围仅限于第一个变更日志 init01,从而允许从那个点开始 liquibase updateupdateToTag 等,继续进行 init01 之后的更改。

我很惊讶 changelogSync[SQL] 命令似乎没有提供某种方法(我可以从 docs 中看到如何执行此操作。

除了打印 SQL 并手动更改它之外,还有什么我遗漏的吗?欢迎任何建议的方法。谢谢!

就目前而言,我找到的唯一解决方案是生成 SQL,然后手动编辑其内容以过滤与您当前架构不对应的更改集。

然后您可以将 sql 应用到数据库。

changelogSyncToTagSQL 怎么样? 它不能满足您的需求吗?

或者您可以尝试使用附加参数“label”或“c​​ontext”的 changelogSyncSQL?

changelogSyncToTagSQL

context

labels