首页 > 解决方案 > 使用 liquibase 为单个 sql 文件生成 changeLog

问题描述

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

标签: sqlmigrationlocalliquibase

解决方案


您正在寻找的东西是不可能的。数据库不记得为使数据库进入特定状态而执行的 SQL。这是一个真正简单的例子。假设您首先运行一些 SQL 来创建一个包含“name”和“id”两列的表。然后你再运行一些 sql 来添加第三列“活动”。数据库不记得为了进入该状态而运行了两个单独的操作。当 Liquibase 为该数据库生成变更日志时,它基本上必须询问数据库“事物的当前状态是什么?” 所以它会有一个变更集来创建包含所有三列的表。

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


推荐阅读