1

コマンドラインで問題なくherokuツールベルトを使用するように切り替えました。ただし、私のrakeタスクは失敗します。

=> Running "heroku run rake --trace db:migrate --app MYAPPNAME"
/Users/USERNAME/.rvm/gems/ruby-1.9.2-p290@global/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ツールベルトをインストールしましたが、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]
4

1 に答える 1

1

heroku コマンドを実行するとうまくいきBundler.with_clean_envました。実行したい rake タスクが呼び出された場合、cache_flushheroku toolbelt への呼び出しを次のようにラップします。Bundler.with_clean_env

task :cache_flush  do
     Bundler.with_clean_env { p `heroku --help` }
end
于 2013-03-08T11:58:12.703 に答える