【发布时间】:2019-04-07 14:08:45
【问题描述】:
几天前我们犯了一个错误。我们有一个 Kubernetes 集群,它的管道会在 25 分钟内超时,这意味着如果没有在 25 分钟内完成部署,它将失败。我们部署了一个 flyway 迁移,其中涉及一些运行一个多小时的查询。愚蠢,我知道。现在我们手动运行迁移中的查询,我们希望手动将 flyway 迁移标记为已完成,否则重新部署将不起作用。有没有办法做到这一点?
【问题讨论】:
几天前我们犯了一个错误。我们有一个 Kubernetes 集群,它的管道会在 25 分钟内超时,这意味着如果没有在 25 分钟内完成部署,它将失败。我们部署了一个 flyway 迁移,其中涉及一些运行一个多小时的查询。愚蠢,我知道。现在我们手动运行迁移中的查询,我们希望手动将 flyway 迁移标记为已完成,否则重新部署将不起作用。有没有办法做到这一点?
【问题讨论】:
所以我们最终在数据库中手动插入了迁移行。 flyway 在您的架构中保留一个表 flyway_schema_history。如果您在此处手动插入一行,它将跳过迁移。唯一棘手的部分是计算校验和。您可以在本地迁移,获取校验和并将其注入实时数据库,或者只是自己重新计算校验和。
您将在 AbstractLoadableResource 类中了解他们如何计算校验和。
【讨论】: