【问题标题】:Generate changeLog for single sql files with liquibase使用 liquibase 为单个 sql 文件生成 changeLog
【发布时间】:2018-05-30 00:07:48
【问题描述】:

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

【问题讨论】:

  • 您到底需要做什么?要基于sql 文件创建changeSets?或者在changeSet 中简单地执行sql 文件可以吗?顺便说一句,如果你想为单个表生成changelog,这可能会派上用场liquibase.jira.com/browse/CORE-875
  • 我想根据 SQL 文件创建变更集。

标签: sql migration local liquibase


【解决方案1】:

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

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

【讨论】:

  • 现在我明白了。现在我问自己如何为通过本地 SQL 文件生成的表生成 changeLog,因为我只知道如何通过包含 URL、用户名、密码等所有信息的数据库运行 liquibase。
猜你喜欢
  • 2020-01-28
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
  • 2014-07-07
  • 2022-01-06
  • 1970-01-01
相关资源
最近更新 更多