我们有一个数据库,可以存储来自外部系统的标识符。现在标识符已更改(系统更改了方案),并且需要更新数据库。它可以完成 - 我有一个映射,所以我可以生成足够的SQL来使它工作,最后这将需要这样做。
问题是 - 这是Flyway Java迁移的用例吗?我倾向于认为情况并非如此,但我不能真正说出原因,这是一种直觉。但是,外部系统的架构没有版本化,至少不是我们的版本,所以我觉得它根本不适合Flyway迁移;我认为它应该只在Flyway之外执行一次。
任何有经验的人都可以提供帮助,解释原因或原因吗?
答案 0 :(得分:3)
它主要以意见为基础,但在我看来,因为它与使用蒸汽锤来破解坚果一样。 Flyway是定期迁移和案例的非常有用的工具,然后有许多数据库,您必须从头开始重新创建或定期更新,而不是一次性使用。
在项目中包含一些相对较大的框架,花一些时间使其工作并仅使用一次的原因是什么?此外,Flyway需要一些额外的表存在于您的数据库中,以存储有关当前版本和应用迁移的内部信息。不要想,这就是你真正希望拥有的东西。
至于我,我认为如果你必须只做一次这个任务而且可以在没有Flyway的情况下完成,那么就这样做吧。
答案 1 :(得分:0)
我认为当我们确定是否为我们的数据迁移编写Flyway脚本时,我们应该问自己一个问题是#34;从头开始创建这个数据库时这是否必要?"
Flyway使用版本控制系统,因此在您的情况下,在站立新环境时将值从旧版本翻转到新版本是否有意义?多次修改怎么样?如果要创建新环境,是否有意义存储旧值并按顺序应用它们?
如果你回答" NO",那么飞路可能不是你要走的路。 Flyway更适用于架构更改,其中数据库的结构已更改,数据将转换为新结构。如果您只是更改配置值,我认为flyway可能不是您最好的选择,因为没有必要将所有更改存储到这些配置值。