[英]Can't make calls to heroku CLI from within a Rake task without the Heroku gem in the Gemfile
我已经有一个应用程序在Heroku上运行了一段时间,并且在最近的部署中看到了Heroku gem被弃用以支持Heroku Toolbelt的消息。 使用工具带,我的所有Heroku命令都可以在命令行中正常工作,但是在Rake任务中(我已经为部署设置),我收到以下错误:
$ rake deploy:staging
Everything up-to-date
/Users/aramisbear/.rvm/gems/ruby-1.9.3-p194@myapp/gems/bundler-1.2.0/lib/bundler/rubygems_integration.rb:147:in `block in replace_gem': heroku is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
from /Users/aramisbear/.rvm/gems/ruby-1.9.3-p194@myapp/bin/heroku:18:in `<main>'
from /Users/aramisbear/.rvm/gems/ruby-1.9.3-p194@myapp/bin/ruby_noexec_wrapper:14:in `eval'
from /Users/aramisbear/.rvm/gems/ruby-1.9.3-p194@myapp/bin/ruby_noexec_wrapper:14:in `<main>'
/Users/aramisbear/.rvm/gems/ruby-1.9.3-p194@myapp/gems/bundler-1.2.0/lib/bundler/rubygems_integration.rb:147:in `block in replace_gem': heroku is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
from /Users/aramisbear/.rvm/gems/ruby-1.9.3-p194@myapp/bin/heroku:18:in `<main>'
from /Users/aramisbear/.rvm/gems/ruby-1.9.3-p194@myapp/bin/ruby_noexec_wrapper:14:in `eval'
from /Users/aramisbear/.rvm/gems/ruby-1.9.3-p194@myapp/bin/ruby_noexec_wrapper:14:in `<main>'
显示的错误来自此部署rake任务:
namespace :deploy do
desc "deploys to Production after uploading assets to S3"
task :production do
puts `git push heroku master`
puts `heroku run rake db:migrate --app myapp`
puts `heroku restart --app myapp`
end
desc "deploys to Staging after uploading assets to S3"
task :staging do
puts `git push staging staging:master`
puts `heroku run rake db:migrate --app myapp-staging`
puts `heroku restart --app myapp-staging`
end
end
每个任务中的两个heroku命令都是问题所在。 如果我从命令行执行它们,它们工作得很好。 我怀疑这很重要,但我也在使用RVM运行OSX。
知道如何解决这个问题吗? 我意识到这不是一个大问题,因为我可以手动运行这些额外的命令或别名,但我只是想知道为什么首先出现问题。
gem的版本的heroku
命令在PATH中的优先级可能高于系统的优先级。
我能够在测试项目中重现这一点。
当我运行which heroku
,我看到shell的选择是/home/justinf/.rvm/gems/ruby-1.9.3-p286/bin/heroku
。
所需要的只是一个简单的gem uninstall heroku
,回答是删除可执行文件。
which heroku
现在给我/usr/bin/heroku
,我的test.rb现在完成没有错误,而不是崩溃与Bundler异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.