我想在计划的heroku任务中调用heroku postgres备份/恢复命令,但是从bash提示符中无法使用heroku toolbelt,所以我无法调用heroku命令:
$ heroku run bash --app myapp
Running `bash` attached to terminal... up, run.4805
~ $ heroku --version
bash: heroku: command not found
Run Code Online (Sandbox Code Playgroud)
如何在我的预定bash脚本中获取heroku命令?我对Ruby或Ruby Gems一无所知.
将它放在预定的bash脚本的顶部:
# install heroku toolbelt
# inspired by https://toolbelt.heroku.com/install.sh
curl -s https://s3.amazonaws.com/assets.heroku.com/heroku-client/heroku-client.tgz | tar xz
mv heroku-client/* .
rmdir heroku-client
PATH="bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
然后,例如,你可以打电话:
heroku pg:reset HEROKU_POSTGRESQL_YELLOW_URL --app myapp-staging --confirm myapp-staging
heroku pgbackups:restore HEROKU_POSTGRESQL_YELLOW_URL `heroku pgbackups:url --app myapp-production` --app myapp-staging --confirm myapp-staging
Run Code Online (Sandbox Code Playgroud)
和噗!临时数据库从生产数据库更新.
由于Heroku在buildpacks完成运行后锁定了文件系统,因此其他解决方案都不适用于我.
有一个第三方buildpack可以为您安装CLI.首先,在您的应用上将auth键设置为ENV变量:
heroku config:set HEROKU_API_KEY=`heroku auth:token` -a myapp
Run Code Online (Sandbox Code Playgroud)
然后添加buildpack:
heroku buildpacks:add https://github.com/heroku/heroku-buildpack-cli -a myapp
重新部署您的应用程序,它应该能够通过CLI访问您的应用程序.如果您启用了https://devcenter.heroku.com/articles/dyno-metadata,您甚至可以使用$ HEROKU_APP_NAME访问当前应用的名称.
| 归档时间: |
|
| 查看次数: |
1216 次 |
| 最近记录: |