New Flyway迁移破坏了现有的jOOQ生成代码

时间:2016-09-14 14:08:24

标签: java flyway jooq

我目前使用jOOQ从我的数据库和Flyway生成Java代码来管理我的二进制(Java)迁移以及SQL迁移。

但是,当我修改现有表时,我遇到了问题。例如,如果我在一次迁移中删除一列,而过去的二进制迁移依赖于该列,则迁移将出现语法错误,因为该字段将不再存在于jOOQ中。

我知道我可以注释掉迁移的主体但是如果我不能重新运行我的迁移或使其变得非常繁琐,那么这会破坏Flyway或任何类型的数据库版本管理器的整个目的(运行1迁移,取消注释,下一步运行,生成jOOQ等)

有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

我认为这是一个工作流程问题。

您正在通过每次迁移有效地升级API,期望该API的旧版用户继续工作将是奇迹般的。

jOOQ是一个很棒的工具,但在这种情况下使用它(以帮助迁移)肯定会导致麻烦。

我的建议是重新思考一下模式演化策略;使用原始自然来自Flyway的原始SQL,并让jOOQ专门为您的应用程序提供帮助。