liquibase 在 2 个更新日志之间生成 sql

liquibase generate sql between 2 changelogs

我们目前使用 liquibase 对我们的 mysql 数据库进行版本控制,但是,我们不允许 运行 在生产环境中使用 liquibase。第一次部署时,我们对数据库进行了 sql 转储,这是迄今为止所有变更日志的合并。

假设更新日志当前在生产中的更新日志 128。 如何在 liquibase 中生成从 128 到 140 的 sql 变更日志?

您可以使用 updateSQL 将更改输出到 SQL 增量脚本文件,而不是直接输出到数据库。

可以这样工作: 您保留生产数据库的副本(只是结构 - 不需要数据)作为参考数据库。 您让该数据库上的所有 128 个变更集 运行,以便它与生产数据库处于相同状态。

然后让 liquibase 运行 使用 updateSQL 对付该数据库。这只会输出文件中缺少的 SQLs(从 128 到 140)。 然后你有 delta SQL 脚本。

假设在生产中你有 1.0,下一个版本是 1.1,变更集 128-140 是从 1.0 到 1.1 的一部分,那么你可以将文件命名为 sql_delta__1_0_to_1_1.sql。

DB 管理员可以检查增量文件,如果他们认为没问题,他们可以让它 运行 并且您的 prod db 将在版本 1.1 上。

之后,您还将 运行 增量脚本添加到您的参考数据库,以确保它与您生产的数据库处于相同状态。

而对于下一个版本,您将重复整个过程。我猜你明白了。

这就是我们使用它的方式...