Hatena::ブログ(Diary)

LazyLoadLife RSSフィード Twitter

2011-11-29

[][] HerokuRails 3.1 アプリgit push すると rake assets:precompile でエラーが出るときの対処

HerokuRails 3.1 アプリgit push heroku master するとこんなエラーが出ることがあると思います。

-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       rake aborted!
       Failed to connect to a master node at localhost:27017

       Tasks: TOP => environment
       (See full trace by running task with --trace)
       Precompiling assets failed, enabling runtime asset compilation
       Injecting rails31_enable_runtime_asset_compilation
       Please see this article for troubleshooting help:
       http://devcenter.heroku.com/articles/rails31_heroku_cedar#troubleshooting

で、その末尾に書いてある URL を読むと、どうもこのタスクが実行される時点では環境変数heroku config で見れます)が存在してないらしい。なので、config/database.yml や config/mongoid.yml で、ENV["DATABASE_URL"] とか ENV["MONGOLAB_URI"] を使用してると、nil が返り空白になり、デフォルトアドレスデフォルトポート(この場合localhost:27017)を見に行ってコケるらしい。


んでもって、何もコミットせずに再度 git push heroku master とかしてみたら、"Everything up-to-date" とか出やがる。あー、git push 自体は受け入れられてるのね。

ってことで、

$ heroku run rake assets:precompile

と後付けでやったところ、うまく動きましたとさ、めでたしめでたし

(staging 環境とか作ってる人は適当に --app つけたりして脳内で補って下さい)

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/babie/20111129/1322586230