我们仍处于项目的早期阶段,我们正在构建一个包含多个表的数据库。 这两个列出的工具都允许我们创建一些DDL / DML文件并跟踪对数据库的更改。 无论如何,当结构仍未整合时,这可能很麻烦。
假设我想添加一个新列,甚至删除一个表:在这两个程序中,我必须使用ALTER TABLE / etc创建一个新脚本。命令并记录变更。
在terraform中,您只需编写所需的基础架构,当您通过删除节点更改文件时,该工具只会更新已存在的内容。
是否可以只列出文件中的表格,例如,当我删除表格定义时,该工具只会更新现有的架构? 如果有人使用其他工具更改架构,则同上。
答案 0 :(得分:1)
只要您不介意丢失数据(从您的问题中可以听到这样的话),Flyway会有cleanOnValidationError
标记。
通过这种方式,您可以使用一个(或多个)SQL文件,并且一旦您运行迁移并且之前运行的文件已更改,Flyway将报告验证错误,这将在Flyway立即设置之前擦除架构清理根据最新的定义再次提升。
它们对于快速迭代开发非常有用。