代码之家  ›  专栏  ›  技术社区  ›  Mad Scientist

使用liquibase为单个SQL文件生成changelog

  •  0
  • Mad Scientist  · 技术社区  · 6 年前

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   SteveDonie    6 年前

    你要找的是不可能的。数据库不记得为使数据库进入某种状态而执行的SQL。这是一个非常简单的例子。假设您首先运行一些SQL来创建具有两列“name”和“id”的表。然后再运行一些SQL来添加第三列“active”。数据库不记得运行了两个独立的操作以进入该状态。当liquibase为该数据库生成一个changelog时,它基本上必须询问数据库“事物的当前状态是什么?”所以它将有一个变更集,用这三列创建表。

    Liquibase可以生成较小的changeLog文件,但您可能应该后退一步,问问自己为什么要这样做。