2013-01-22 80 views
1

我已經切換到在命令行上使用heroku toolbelt而沒有問題。然而,我的rake任務現在失敗:Heroku toolbelt不能使用rake任務

=> Running "heroku run rake --trace db:migrate --app MYAPPNAME" 
/Users/USERNAME/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/rubygems_integration.rb:143:in `block in replace_gem': heroku is not part of the bundle. Add it to Gemfile. (Gem::LoadError) 
    from /Users/USERNAME/.rvm/gems/ruby-1.9.2-p290/bin/heroku:18:in `<main>' 
rake aborted! 
ERROR running "heroku run rake --trace db:migrate --app MYAPPNAME" 
/Users/USERNAME/Code/luxr/lib/shell.rb:35:in `execute' 
/Users/USERNAME/Code/luxr/lib/tasks/deploy_tasks.rake:22:in `block (2 levels) in <top (required)>' 
Tasks: TOP => deploy:production 
(See full trace by running task with --trace) 

同樣的命令heroku run rake --trace db:migrate --app MYAPPNAME作品沒有問題,直接鍵入命令行。

想法?

更新:我已經安裝了heroku toolbelt,但我注意到它是在ruby 1.9.3上,我的應用程序是1.9.2p290,是否導致該問題?

$ heroku version 
heroku-toolbelt/2.34.0 (x86_64-darwin10.8.0) ruby/1.9.3 

$ ruby -v 
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0] 
+0

它似乎不使用工具區。它是尋找寶石。做'heroku版本'來查看運行的是什麼 –

+0

我已經安裝了toolbelt:'heroku-toolbelt/2.34.0(x86_64-darwin10.8.0)ruby/1.9.3'我現在注意到它在1.9.3上,我的應用程序是1.9 .2p290 ....是差別嗎? – TLK

+0

運行'NOEXEC_DISABLE = 1 heroku運行耙...工作嗎? – matt

回答

1

運行heroku命令Bundler.with_clean_env爲我工作。如果你想運行rake任務稱爲cache_flush,換你來的Heroku工具區呼叫與Bundler.with_clean_env

task :cache_flush do 
    Bundler.with_clean_env { p `heroku --help` } 
end 
+0

這是怎麼做的..這段代碼屬於哪裏? – baash05

+0

我編輯並詳細說明了我的回覆。 – lgx