【问题标题】:Delivering hot fixes using Flyway使用 Flyway 提供热修复
【发布时间】:2011-10-16 03:51:12
【问题描述】:

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

  1. 应用程序版本 7(和数据库版本 7)已部署在生产环境中
  2. 从应用版本 8 开始工作
  3. DB 版本 8 在验收测试环境中开发和部署
  4. 在生产中发现错误
  5. DB 7.1 版已开发完成,必须经过验收测试

当针对验收测试环境调用flyway:migrate时,它会注意到v8已经执行,因此不需要执行v7.1。

一方面这是有道理的,因为 v7.1 可能与 v8 不兼容,而且 Flyway 无法对此进行分析。 Fail-fast 是完全可以理解的。

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

是否有我不知道的功能可以处理这种情况,或者是 clean + migrate.target=v7.1 唯一的选择?

【问题讨论】:

    标签: database continuous-deployment flyway


    【解决方案1】:

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

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

    【讨论】:

    • 这个答案不能解决问题。通常,不能完全使用热修复移动所有最新迁移,因为相应的代码更改不是热修复的一部分。此外,此答案只是重复了 Flyway 常见问题解答。
    • 这是我觉得最合适的方式。如果您有不同的看法,请为此问题提供另一个答案。我一直期待有机会学习。
    猜你喜欢
    • 2016-09-24
    • 2020-04-27
    • 2023-03-29
    • 2010-10-30
    • 2023-04-09
    • 2014-02-27
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    相关资源
    最近更新 更多