ACTUALIZACIÓN nono Junio 2012:heroku mongohq y MongoId Mongo :: ConnectionFailure
instalación con 3.0.0.rc MongoId en heroku, ver este GIST: https://gist.github.com/2900804
ACTUALIZACIÓN 22 de jan 2011:
Uri ahora tiene prioridad en mongoid.yml
https://github.com/mongoid/mongoid/issues/issue/266
ACTUALIZACIÓN 12ª aug 2010: a pesar de que tengo un sexto respuesta aceptada puede de Jackues Crocker, hay aspectos de este problema que hacen que sea fácil equivocarse. Me pasó una vez más y decidí investigar el código fuente monótono. Por lo tanto, aquí va:
Actualmente, host: puerto: Nombre/base de datos: configuración tienen prioridad sobre los uri: ajuste. Por lo tanto, el mensaje de error muy poco informativo está sucediendo debido a una solicitud de localhost: xxxx y no a flame.local.mongohq.com:xxxx
Esto romperá!
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'] %>
arreglo él, ya sea con la eliminación del anfitrión : de la morosidad, y/o la eliminación de la < <: * por defecto
Q ORIGINAL:
que han añadido el mongoHQ complemento para mongodb en heroku. Se estrella con:
connect_to_master': failed to connect to any given host:port (Mongo::ConnectionFailure)
Las descripciones en línea (heroku mongohq) están más dirigidos hacia MongoMapper, tal como lo veo. Estoy ejecutando ruby 1.9.1 y rails 3-beta con mongoid.
Mi sensación dice que hay algo con ENV['MONGOHQ_URL']
, que dice que el complemento MongoHQ establece, pero no he configurado MONGOHQ_URL
en ninguna parte de mi aplicación. Supongo que el problema está en mi 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'] %>
Funciona bien a nivel local, pero falla en heroku, más Seguimiento de la pila:
==> 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'
.....
Todo funciona a nivel local, ambas pruebas y aplicación. Me he quedado sin ideas ... ¿Alguna sugerencia?
PD: ¿Alguien con alta reputación cree la etiqueta 'mongohq'?
El arreglo uri no lo hace parece que funciona todavía Encontré el boleto/problema en github.com/durran/mongoid y su fuente http://ragingonrails.com/post/566548996/using-mongoid-on-heroku-with-mongohq. Lo hice de la misma manera, manipulando el ENV para el puerto, el host, etc. ¡Eso funciono! – oma
Esta respuesta está marcada como correcta. Para los demás que experimentan lo mismo, tenga en cuenta que tuve que tweek algunos yo mismo. También debería ser ': git => git: // github.com/durran/mongoid.git' – oma
Ahora necesita usar' production> sessions> default> uri' - actualizó la respuesta para que coincida. – chrismdp