1

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

问题是,我可以在 main 函数运行时运行迁移,但感觉有点 hacky,这意味着每次应用重新启动时都会运行迁移。我宁愿在部署时只运行模式迁移。

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

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

4

1 回答 1

1

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

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

在您添加migrate对它的依赖后,Heroku 应该可以使用它。您可以通过运行migrate up和其他命令heroku run bash。一旦您习惯手动运行迁移,您可能需要考虑向您添加发布阶段命令Procfile以便在部署新版本时自动应用迁移。

于 2019-04-07T04:57:36.657 回答