【发布时间】:2019-02-14 21:52:22
【问题描述】:
我在 flyway 中添加了一些更改,比如说在 20 版中
更改表 xyz 添加列 abc TINYINT(1);
现在,经过几次数据库迁移,我们决定不再需要列“abc”,当前的 flyway 版本是 35。
所以,现在我可以看两个选项,也请建议更好的一个,如果存在任何其他替代方案:
- 创建一个新版本 36,其中删除了列,这将起作用,但会创建“垃圾”文件
- 删除版本 20 的文件(不确定它是否会破坏一些东西,尤其是在生产中)
【问题讨论】:
-
Flyway 使用了两种类型的迁移策略:版本化迁移有版本、描述和校验和。版本必须是唯一的。它们仅按顺序应用一次。 可重复迁移有描述和校验和,但没有版本。它们不是只运行一次,而是在每次校验和更改时(重新)应用。因为,我们使用的是版本化方法,所以我坚持使用第 1 步。保持问题开放以获得更好的选择