2012年6月9日更新:
herokuでmongoid3.0.0.rcを使用してセットアップします。この要点を参照してください:https ://gist.github.com/2900804
2011年1月22日更新:
Uriがmongoid.ymlで優先されるようになりました
https://github.com/mongoid/mongoid/issues/issue/266
2010年8月12日更新:Jackues Crockerから5月6日までに承認された回答を得ましたが、この問題には混乱を招きやすい側面があります。それはまた私に起こりました、そして私はモンゴイドソースコードを研究することに決めました。だから、ここに行きます:
現在、ホスト:ポート:名前/データベース:設定URI:設定よりも優先されます。したがって、flame.local.mongohq.com :xxxxではなくlocalhost:xxxxへのリクエストが原因で、非常に情報量の少ないエラーメッセージが表示されます。
これは壊れます!
defaults: &defaults
host: localhost <- THIS 'OVERWRITES' host in the uri!
production:
<<: *defaults <- BE CAREFUL WITH WHAT YOU BRING IN. THE host: FROM DEFAULTS WILL BE THE ONE APPLIED, not your uri host.
uri: <%= ENV['MONGOHQ_URL'] %>
デフォルトでホストを削除するか、 <<:*defaultsを削除して修正します。
オリジナルQ:
herokuでmongodbのmongoHQアドオンを追加しました。でクラッシュします:
connect_to_master': failed to connect to any given host:port (Mongo::ConnectionFailure)
オンラインでの説明(heroku mongohq)は、私が見ているように、mongomapperに向けられています。私はruby1.9.1とrails3-betaをmongoidで実行しています。
ENV['MONGOHQ_URL']
MongoHQアドオンが設定されているとのことですが、アプリのどこにも設定しMONGOHQ_URL
ていません。問題は私のmongoid.ymlにあると思いますか?
defaults: &defaults
host: localhost
development:
<<: *defaults
database: aliado_development
test:
<<: *defaults
database: aliado_test
# set these environment variables on your prod server
production:
<<: *defaults
host: <%= ENV['MONGOID_HOST'] %>
port: <%= ENV['MONGOID_PORT'] %>
username: <%= ENV['MONGOID_USERNAME'] %>
password: <%= ENV['MONGOID_PASSWORD'] %>
database: <%= ENV['MONGOID_DATABASE'] %>
ローカルでは正常に動作しますが、herokuでは失敗します。スタックトレースが増えます。
==> crashlog.log <==
Cannot write to outdated .bundle/environment.rb to update it
/disk1/home/slugs/176479_b14df52_b875/mnt/.bundle/gems/gems/rack-1.1.0/lib/rack.rb:14: warning: already initialized constant VERSION
/disk1/home/slugs/176479_b14df52_b875/mnt/.bundle/gems/gems/mongo-0.20.1/lib/mongo/connection.rb:435:in `connect_to_master': failed to connect to any given host:port (Mongo::ConnectionFailure)
from /disk1/home/slugs/176479_b14df52_b875/mnt/.bundle/gems/gems/mongo-0.20.1/lib/mongo/connection.rb:112:in `initialize'
from /disk1/home/slugs/176479_b14df52_b875/mnt/.bundle/gems/gems/mongoid-2.0.0.beta4
/lib/mongoid/railtie.rb:32:in `new'
from /disk1/home/slugs/176479_b14df52_b875/mnt/.bundle/gems/gems/mongoid-2.0.0.beta4/lib/mongoid/railtie.rb:32:in `block (2 levels) in <class:Railtie>'
from /disk1/home/slugs/176479_b14df52_b875/mnt/.bundle/gems/gems/mongoid-2.0.0.beta4/lib/mongoid.rb:110:in `configure'
from /disk1/home/slugs/176479_b14df52_b875/mnt/.bundle/gems/gems/mongoid-2.0.0.beta4/lib/mongoid/railtie.rb:21:in `block in <class:Railtie>'
from /disk1/home/slugs/176479_b14df52_b875/mnt/.bundle/gems/gems/railties-3.0.0.beta3/lib/rails/initializable.rb:25:in `instance_exec'
.....
テストとアプリの両方で、すべてローカルで動作します。私はアイデアがありません...何か提案はありますか?
PS:高い評判を持っている人は、タグ「mongohq」を作成しますか?