代码之家  ›  专栏  ›  技术社区  ›  Luke Xu

新的Flyway迁移打破了现有的jOOQ生成的代码

  •  0
  • Luke Xu  · 技术社区  · 8 年前

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

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

    我知道我可以注释掉迁移的主体,但如果我不能重新运行迁移或使迁移变得非常乏味(运行1个迁移、取消注释、运行下一个、生成jOOQ等),那么这就违背了Flyway或任何类型的数据库版本管理器的全部目的

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

    1 回复  |  直到 8 年前
        1
  •  2
  •   markdsievers    8 年前

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

    每次迁移都会有效地升级一个API,希望该API的遗留使用者能够继续工作,这简直是奇迹。

    我的建议是重新思考你的模式进化策略;使用Flyway自然而然的原始SQL,并让jOOQ专门帮助您的应用程序。