Mi aplicación funciona perfectamente en producción, al menos en la parte del sitio web. El problema solo aparece cuando SSH en mi VPS y hago "rails c RAILS_ENV = production". La consola funciona bien en modo de desarrollo.No se puede abrir la consola de rails: la base de datos de producción no está configurada, establish_connection plantea ActiveRecord :: AdapterNotSpecified
He tenido este problema antes (o al menos uno que se parece) y lo solucioné agregando "reconnect: true" a database.yml - pero no lo solucionó esta vez. Aquí está el comienzo de la salida de error:
/home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:62:in `establish_connection': RAILS_ENV=production database is not configured (ActiveRecord::AdapterNotSpecified)
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in `establish_connection'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/railtie.rb:59:in `block (2 levels) in <class:Railtie>'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.0/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.0/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.0/lib/active_support/lazy_load_hooks.rb:26:in `on_load'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/railtie.rb:57:in `block in <class:Railtie>'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.0/lib/rails/initializable.rb:25:in `instance_exec'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.0/lib/rails/initializable.rb:25:in `run'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.0/lib/rails/initializable.rb:50:in `block in run_initializers'
Y para mi configuración de base de datos de producción:
production:
adapter: mysql
encoding: utf8
database: tour_production
pool: 5
username: [user]
password: [password]
socket: /var/run/mysqld/mysqld.sock
reconnect: true
no puedo dejar de pensar en torno a por qué funciona a través de pasajeros, pero no hubo suerte con la consola. De todos modos, estoy usando Rails 3, Ruby 1.9.2, Passenger y Nginx.
He estado haciendo algunas cosas pequeñas a través de Runner, lo cual es molesto. Me gustaría arreglar esto. Así que muchas gracias por cualquier ayuda.
Ah, eso lo haría. Parece que cada comando tiene una forma diferente de declarar el entorno de los rieles. Muchas gracias por la respuesta rápida. – Nathan