【问题标题】:How can I run script after deploy to heroku部署到heroku后如何运行脚本
【发布时间】:2015-05-13 02:15:38
【问题描述】:

我在 node.js 中有一个依赖于环境变量的应用程序。我对代码进行了一些更改,现在应该在部署后更改其中一个变量。我不想手动执行此操作。自动执行此操作的最佳做​​法是什么。

我想在部署后运行一些脚本可能是解决方案,但我只想运行这个脚本一次(有这个特殊的更改)。

我唯一的想法是,如果有另一个脚本要运行,我应该有一个脚本来检查(在每次部署之后)某个目录,然后运行它并删除它。但是我怎样才能做到这一点呢?

【问题讨论】:

  • this link 可能会有所帮助。基本上你运行heroku run bash -a <appname> 来登录heroku

标签: node.js heroku deployment


【解决方案1】:

解决此问题的最佳方法是使用Heroku Toolbelt 设置您的环境变量as described here

heroku config:set GITHUB_USERNAME=joesmith

然后您可以使用以下语法在您的 Node.js 应用程序中引用这些变量:

var dbUsername = process.env.DB_USERNAME;

假设您像这样设置 DB_USERNAME 变量:

heroku config:set DB_USERNAME=myAppUserName

如果没有设置环境变量,我想确保有一个回退,你可以这样实现:

var dbUsername = process.env.DB_USERNAME || 'fallbackUsername';
// The string after || will be used if the process.env.DB_USERNAME variable is undefined (not set)

【讨论】:

  • 好的,但是我如何运行这个:heroku config:set GITHUB_USERNAME=joesmith 推送到 heroku 后?自动且仅一次。
  • 您需要在本地机器上使用 Heroku Toolbelt 执行此操作 - 一旦设置好,它将在您的应用程序的整个生命周期中保留。
  • 这对你有用吗?如果是这样,请务必将我的答案设置为已接受:)
  • 否,因为它需要手动运行此命令。我认为在我的情况下扩展/收缩模式将是更好的解决方案。
  • 我不同意 - 肯定一旦你设置了它,你就不需要再设置它了吗?
猜你喜欢
  • 2020-12-21
  • 2018-07-19
  • 1970-01-01
  • 2017-07-16
  • 2018-07-14
  • 2018-03-03
  • 2017-04-07
  • 2016-05-19
  • 1970-01-01
相关资源
最近更新 更多