Flyway Java迁移是否是此用例的正确工具?

时间:2016-12-05 19:21:09

标签: flyway

我们有一个数据库,可以存储来自外部系统的标识符。现在标识符已更改(系统更改了方案),并且需要更新数据库。它可以完成 - 我有一个映射,所以我可以生成足够的SQL来使它工作,最后这将需要这样做。

问题是 - 这是Flyway Java迁移的用例吗?我倾向于认为情况并非如此,但我不能真正说出原因,这是一种直觉。但是,外部系统的架构没有版本化,至少不是我们的版本,所以我觉得它根本不适合Flyway迁移;我认为它应该只在Flyway之外执行一次。

任何有经验的人都可以提供帮助,解释原因或原因吗?

2 个答案:

答案 0 :(得分:3)

它主要以意见为基础,但在我看来,因为它与使用蒸汽锤来破解坚果一样。 Flyway是定期迁移和案例的非常有用的工具,然后有许多数据库,您必须从头开始重新创建或定期更新,而不是一次性使用。

在项目中包含一些相对较大的框架,花一些时间使其工作并仅使用一次的原因是什么?此外,Flyway需要一些额外的表存在于您的数据库中,以存储有关当前版本和应用迁移的内部信息。不要想,这就是你真正希望拥有的东西。

至于我,我认为如果你必须只做一次这个任务而且可以在没有Flyway的情况下完成,那么就这样做吧。

答案 1 :(得分:0)

我认为当我们确定是否为我们的数据迁移编写Flyway脚本时,我们应该问自己一个问题是#34;从头开始创建这个数据库时这是否必要?"

Flyway使用版本控制系统,因此在您的情况下,在站立新环境时将值从旧版本翻转到新版本是否有意义?多次修改怎么样?如果要创建新环境,是否有意义存储旧值并按顺序应用它们?

如果你回答" NO",那么飞路可能不是你要走的路。 Flyway更适用于架构更改,其中数据库的结构已更改,数据将转换为新结构。如果您只是更改配置值,我认为flyway可能不是您最好的选择,因为没有必要将所有更改存储到这些配置值。