2012-10-19 16 views
7

Ho un'app in esecuzione su Heroku da un po 'di tempo e in una recente distribuzione ho visto il messaggio che la gemma di Heroku era deprecata a favore del cinturone Heroku. Con il toolbelt, tutto il mio Heroku comandi funzionano bene dalla linea di comando, ma all'interno di un task Rake (che ho installato per le implementazioni) ottengo i seguenti errori:Impossibile effettuare chiamate alla CLI di heroku dall'interno di un'attività Rake senza la gemma di Heroku nel file Gemma

$ rake deploy:staging 
Everything up-to-date 

/Users/aramisbear/.rvm/gems/[email protected]/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/[email protected]/bin/heroku:18:in `<main>' 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>' 

/Users/aramisbear/.rvm/gems/[email protected]/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/[email protected]/bin/heroku:18:in `<main>' 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>' 

Gli errori in fase mostrati sono da questa rake distribuzione attività:

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 

I due comandi di heroku in ciascuna attività sono da dove viene il problema. Se li eseguo dalla riga di comando, funzionano comunque bene. Dubito che sia importante, ma sto eseguendo OSX anche con RVM.

Qualche idea su come risolvere questo problema? Mi rendo conto che non è un grosso problema dato che posso semplicemente eseguire questi comandi aggiuntivi manualmente o aliasli, ma vorrei solo sapere perché c'è un problema in primo luogo.

risposta

8

La versione della gemella del comando heroku probabilmente ha una priorità più alta nel PATH di quella del sistema.

Sono stato in grado di riprodurre questo in un progetto di test.

Quando corro which heroku, vedo che la scelta della shell è /home/justinf/.rvm/gems/ruby-1.9.3-p286/bin/heroku.

Tutto ciò che serve è un semplice gem uninstall heroku, rispondendo sì alla cancellazione dell'eseguibile.

which heroku ora mi dà /usr/bin/heroku e il mio test.rb ora si completa senza errori invece di uscire con un'eccezione di raggruppamento.

+0

E 'stato. Grazie! – brightball

Problemi correlati