使用 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 生成更小的变更日志文件,但您可能应该退后一步,问问自己为什么要这样做。
我有一个包含许多 SQL 文件的庞大数据库。有没有办法为单个 SQL 文件而不是整个数据库生成更新日志?我在我的硬盘驱动器上本地存储了一些 SQL 文件,并通过命令行使用 liquibase。如果无法使用本地 SQL 文件执行此操作,是否可以为我的数据库的单个表生成更新日志?
您要找的是不可能的。数据库不记得为使数据库进入特定状态而执行的 SQL。这是一个真正简单的例子。假设您首先 运行 一些 SQL 创建一个包含两列 'name' 和 'id' 的 table。然后你 运行 再 sql 添加第三列 'active'。数据库不记得两个单独的操作是 运行 进入那个状态。当 Liquibase 为该数据库生成变更日志时,它基本上必须询问数据库 'what is the current state of things?',因此它会有一个变更集,该变更集会创建包含所有三列的 table。
可以让 liquibase 生成更小的变更日志文件,但您可能应该退后一步,问问自己为什么要这样做。