如何将 运行 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 update
或 updateToTag
等,继续进行 init01 之后的更改。
我很惊讶 changelogSync[SQL]
命令似乎没有提供某种方法(我可以从 docs 中看到如何执行此操作。
除了打印 SQL 并手动更改它之外,还有什么我遗漏的吗?欢迎任何建议的方法。谢谢!
就目前而言,我找到的唯一解决方案是生成 SQL,然后手动编辑其内容以过滤与您当前架构不对应的更改集。
然后您可以将 sql 应用到数据库。
changelogSyncToTagSQL 怎么样?
它不能满足您的需求吗?
或者您可以尝试使用附加参数“label”或“context”的 changelogSyncSQL?
我正在将 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 update
或 updateToTag
等,继续进行 init01 之后的更改。
我很惊讶 changelogSync[SQL]
命令似乎没有提供某种方法(我可以从 docs 中看到如何执行此操作。
除了打印 SQL 并手动更改它之外,还有什么我遗漏的吗?欢迎任何建议的方法。谢谢!
就目前而言,我找到的唯一解决方案是生成 SQL,然后手动编辑其内容以过滤与您当前架构不对应的更改集。
然后您可以将 sql 应用到数据库。
changelogSyncToTagSQL 怎么样? 它不能满足您的需求吗?
或者您可以尝试使用附加参数“label”或“context”的 changelogSyncSQL?