在将golang应用程序部署到Heroku时运行迁移

问题描述 投票:0回答:1

我一直在尝试为Heroku上的golang应用程序设置迁移。我正在使用原生Go模块(vgo)和官方Heroku构建包。对于迁移,我使用的是migrate包。

问题是,我可以在主函数运行时运行迁移,但感觉有点hacky,这意味着每次应用程序重新启动时都会运行迁移。我更愿意在部署时运行架构迁移。

我不确定如何实现这一点,当我登录到实例时,没有安装go二进制文件,就像build pack只执行main函数一样。

我可以使用Heroku CLI命令来完成它,但我无法在文档中或通过Google找到如何执行此操作。

go heroku migrate go-modules
1个回答
0
投票

应该定义所有依赖项,以便Heroku可以为您安装它们。对于Go,Heroku支持godepgovendor。如果您还没有使用过,请选择一个然后开始。

您的依赖项文件应该提交到您的存储库。对于gazp来说,Godeps/Godeps.json和govendor是vendor/vendor.json。您的依赖项本身不应该被提交。

在你添加了对migrate的依赖后,它应该在Heroku上可用。您可以通过migrate up运行heroku run bash和其他命令。一旦您习惯于手动运行迁移,您可能需要考虑在release phase command中添加Procfile,以便在部署新版本时自动应用迁移。

© www.soinside.com 2019 - 2024. All rights reserved.