使用Flyway提供热修复

时间:2011-07-29 17:50:41

标签: database continuous-deployment flyway

让我们考虑一下Flyway FAQ部分中的What is the best strategy for dealing with hot fixes?问题。在这个问题中:

  1. 应用程序版本7(和数据库版本7)已部署在生产中
  2. 工作从应用版本8开始
  3. 在验收测试环境中开发和部署了DB版本8
  4. 在生产中识别出错误
  5. 开发了DB版本7.1,必须经过验收测试
  6. 当flyway:migrate将在验收测试环境中调用时,它会注意到v8已经被执行,因此不需要执行v7.1。

    一方面它是有道理的,因为v7.1可能与v8不兼容,并且不能由Flyway来分析它。快速失败是完全可以理解的。

    另一方面,将v7.1部署到验收测试环境的唯一方法是清理数据库并运行flyway:migrate with target = v7.1,从而丢弃可能已使用它的数据。

    是否有一个我不知道处理这种情况的功能还是干净+ migrate.target = v7.1是唯一的选择?

1 个答案:

答案 0 :(得分:0)

不仅仅是一个不同的功能,它还有一个不同的过程。

如果您确实希望将数据保留在验收环境中,我建议使用修补程序运送数据库v8,然后实际更改可以是v8.1。在部署相应的代码之前,v8架构的功能可能仍未使用。但在大多数情况下,这不会造成任何伤害。