Rails 3, nginx y unicornio. ¿Por qué Rails busca la base de datos de desarrollo si estoy en producción?

Acabo de implementar una aplicación usando capistrano, nginx y unicorn. Solía ​​usar Apache y Passenger, pero estoy probando algo nuevo.

sigo recibiendo error ActiveRecord::StatementInvalid (Could not find table 'users') en mi production.log (ya lo comprobé, las tablas SÍ existen en MySQL).

Seguí buscando el motivo del error y descubrí que parece que Rails está buscando la base de datos de desarrollo (sqlite3) en lugar de la base de datos de producción (mysql).

Seguí RailsCast 335 http://railscasts.com/episodes/335-deploying-to-a-vps pero estoy usando MySQL en lugar de Postgres.

Mi archivo database.yml se encuentra en /apps/myappname/shared/config, y esto es lo que contiene (no hay información para dbs de prueba ni de desarrollo) ...

production:
  adapter: mysql2
  database: dbname
  pool: 5
  timeout: 5000
  host: localhost
  username: db_user
  password: secret

Entonces, ¿por qué Rails no busca este archivo para acceder a la base de datos?

preguntado el 04 de julio de 12 a las 00:07

1 Respuestas

Qué pasa con su gemfile?

Debe especificar qué base de datos está utilizando para el desarrollo y cuál para la producción:

# make sure you place your db gems in a group block
group :development do
  gem 'sqlite3'
end

group :production do
  gem 'mysql'
end

Respondido 04 Jul 12, 00:07

sí, eso fue todo, tenía `gem 'sqlite3' fuera de un grupo. ¡Gracias! - leonel

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.