2011-07-29 49 views
2

我们来考虑Flyway常见问题部分中的What is the best strategy for dealing with hot fixes?问题。在这个问题:使用Flyway提供修补程序

  1. 应用程序版本7(和DB 7版)部署在生产
  2. 工作应用版本开始8
  3. DB版本8的开发和部署,在接受测试环境
  4. 错误是在生产标识
  5. DB版本7.1开发,并且必须接受测试

当迁徙路线:迁移将b如果在接受测试环境中调用,则会注意到v8已经被执行,因此不需要执行v7.1。

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

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

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

回答

1

不仅仅是一个不同的功能,它关乎一个不同的过程。

如果你想保持你的数据在你的受理环境,我会建议数据库的航运V8的修补程序和实际的变化,则可以V8.1。在部署相应的代码之前,v8模式的功能可能保持不用。然而,在大多数情况下,这不会造成伤害。

+1

此答案无法解决问题。一般来说,不能完全移动所有最新的迁移,因为相应的代码更改不是热修复程序的一部分。此外,这个答案只是重复Flyway FAQ。 – gnomie

+0

这是我觉得最合适的方式。如果您觉得不适合,请为此问题提供另一个答案。我一直期待着有机会学习。 –