[英]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.