【问题标题】:Terraform-like auto-update db with liquibase/flyway, possible?使用 liquibase/flyway 类似 Terraform 的自动更新数据库,可能吗?
【发布时间】:2018-10-14 03:23:56
【问题描述】:

我们仍处于项目的早期阶段,我们正在构建一个包含多个表的数据库。 列出的两个工具都允许我们创建一些 DDL/DML 文件并跟踪对 db.xml 的更改。 无论如何,当结构仍未巩固时,这可能会很麻烦。

假设我想添加一个新列,甚至删除一个表:在这两个程序中,我必须使用 ALTER TABLE/etc 创建一个新脚本。命令并记录更改。

在 terraform 中,您只需编写所需的基础架构,当您通过删除节点更改文件时,该工具只会更新已经存在的内容。

是否可以仅列出文件中的表,例如,当我删除表定义时,该工具仅更新现有架构? 如果有人使用其他工具更改架构,则同理。

【问题讨论】:

    标签: liquibase flyway


    【解决方案1】:

    只要您不介意丢失数据(从您的问题看来这可能是可以的),Flyway 就有 cleanOnValidationError 标志。

    通过这种方式,您可以使用一个(或多个)SQL 文件,并且一旦您运行 migrate 并且之前运行的文件已更改,Flyway 将报告一个验证错误,这反过来会在 Flyway 立即设置之前清除架构根据最新的定义再次全部恢复。

    它们对于开发中的快速迭代非常有用。

    【讨论】:

      猜你喜欢
      • 2013-01-07
      • 2016-11-27
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2012-05-26
      • 2020-05-04
      • 1970-01-01
      相关资源
      最近更新 更多