Go 检查是否需要迁移

Go 检查是否需要迁移,go,go-gorm,Go,Go Gorm,我的微服务使用gorm并部署到kubernetes集群中,其中包含多个实例。因此,当新版本的应用程序部署时,自动迁移的多个任务将并行启动 我想启动一个应用程序witch开始迁移,当它将完成时,主应用程序的几个例子将启动 如果数据库需要迁移,我如何签入我的应用程序,以便在检查迁移是否完成后我的应用程序可以退出?如果确实需要此自动迁移,则需要在数据库中的某个位置存储一些可以称为“schema version”的值。此值仅在数据库完成迁移到新架构后更改。应用程序的特定版本在启动之初检查版本值,因为它“

我的微服务使用gorm并部署到kubernetes集群中,其中包含多个实例。因此,当新版本的应用程序部署时,自动迁移的多个任务将并行启动

我想启动一个应用程序witch开始迁移,当它将完成时,主应用程序的几个例子将启动


如果数据库需要迁移,我如何签入我的应用程序,以便在检查迁移是否完成后我的应用程序可以退出?

如果确实需要此自动迁移,则需要在数据库中的某个位置存储一些可以称为“schema version”的值。此值仅在数据库完成迁移到新架构后更改。应用程序的特定版本在启动之初检查版本值,因为它“知道”(通常通过源代码中的一些
const
)它能够使用的模式版本,如果版本不是预期的版本,则退出。实际上,这将是一个糟糕的体系结构。流应该是,例如,您有CI/CD,它将部署,例如,如果是docker,则在ecs或其他docker注册表中&将从CLI运行迁移命令。如果在您的每个服务中运行迁移,则将是灾难kubernetes@kostix谢谢gorm中是否存在用于版本检查的api,或者我必须手动执行此操作?@ARIFMAHMUDRANA在常用方法中,迁移在主吊舱开始之前的kubernetes部署的特殊作业中开始。如果此作业失败,则主吊舱不会启动。