使用 liquibase 为单个 sql 文件生成 changeLog

Generate changeLog for single sql files with liquibase

我有一个包含许多 SQL 文件的庞大数据库。有没有办法为单个 SQL 文件而不是整个数据库生成更新日志?我在我的硬盘驱动器上本地存储了一些 SQL 文件,并通过命令行使用 liquibase。如果无法使用本地 SQL 文件执行此操作,是否可以为我的数据库的单个表生成更新日志?

您要找的是不可能的。数据库不记得为使数据库进入特定状态而执行的 SQL。这是一个真正简单的例子。假设您首先 运行 一些 SQL 创建一个包含两列 'name' 和 'id' 的 table。然后你 运行 再 sql 添加第三列 'active'。数据库不记得两个单独的操作是 运行 进入那个状态。当 Liquibase 为该数据库生成变更日志时,它基本上必须询问数据库 'what is the current state of things?',因此它会有一个变更集,该变更集会创建包含所有三列的 table。

可以让 liquibase 生成更小的变更日志文件,但您可能应该退后一步,问问自己为什么要这样做。