UPDATE 9. Juni 2012:Heroku mongohq und mongoid Mongo :: ConnectionFailure
-Setup mit mongoid 3.0.0.rc bei Heroku, diesen Kern sehen: https://gist.github.com/2900804
UPDATE 22. Januar 2011:
Uri jetzt Vorrang in mongoid.yml
https://github.com/mongoid/mongoid/issues/issue/266
UPDATE 12. August 2010 nimmt: Obwohl ich eine akzeptierte Antwort 6. bekam kann von Jackues Crocker gibt es Aspekte dieser Ausgabe, die es leicht machen, durcheinander zu kommen! Es ist mir wieder passiert und ich habe mich entschieden, den Mongoid-Quellcode zu recherchieren. Also, hier geht es:
Derzeit host: port: Name/Datenbank: Einstellungen Vorrang vor den uri TAKE: Einstellung. Daher ist die furchtbar uninformativ Fehlermeldung geschieht aufgrund einer Anfrage an localhost: xxxx und nicht zu flame.local.mongohq.com:xxxx
Diese brechen!
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'] %>
fix es entweder mit Entfernen des host: in Standardwerte und/oder Entfernen der < <: * Standardwerte
ORIGINAL F:
Ich habe hinzugefügt, die mongoHQ Addon für mongodb bei Heroku. Es stürzt mit:
connect_to_master': failed to connect to any given host:port (Mongo::ConnectionFailure)
Die Beschreibungen online (heroku mongohq) sind mehr in Richtung mongomapper gerichtet, wie ich es sehe. Ich laufe ruby 1.9.1 und rails 3-beta mit mongoid.
Mein Gefühl sagt, dass es etwas mit ENV['MONGOHQ_URL']
gibt, das das MongoHQ Addon setzt, aber ich habe MONGOHQ_URL
nirgendwo in meiner App festgelegt. Ich denke, das Problem ist in meinem 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'] %>
Es funktioniert vor Ort in Ordnung, aber nicht bei Heroku, mehr Stack-Trace:
==> 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'
.....
Alles vor Ort arbeitet, beiden Tests und App. Ich habe keine Ideen mehr ... Irgendwelche Vorschläge?
PS: Jemand mit hoher Reputation erstellt das Tag 'mongohq'?
Die uri fix nicht scheinen noch zu arbeiten. Ich fand das Ticket/Problem bei github.com/durran/mongoid und die Quelle davon http://ragingonrails.com/post/566548996/using-mongoid-on-heroku-with-mongohq. Ich habe es auf die gleiche Weise gemacht, die ENV für Port, Host und so weiter manipuliert. Das hat funktioniert! – oma
Diese Antwort ist als korrekt markiert. Für andere, die das gleiche erleben, beachte, dass ich selbst etwas zwicken musste. Es sollte auch sein:: git => git: // github.com/durran/mongoid.git – oma
Jetzt müssen Sie 'production> sessions> default> uri' verwenden - aktualisiert die passende Antwort. – chrismdp