2011-09-07 14 views
6

VersionesFalta la gema mysql2. Añadirlo a su Gemfile: joya 'mysql2'

  • rubí 1.9.2-p290
  • rieles 3.0.9
  • mysql2-0.2.13 bajo RVM
  • Ubuntu 11.04

gema instalada con "joya instalar mysql2 -v '< 0.3'". Todas las dependencias fueron satisfechas.

rails & 'rails c' funcionan bien.

Necesito ejecutar un script fuera del entorno de los rieles usando activerecord 3.0.9. Cuando ejecuto el script de esto es la salida:

======================

/home/ross/work/x/library/models.rb:27:in `eval': !!! Missing the mysql2 gem. Add it to your Gemfile: gem 'mysql2' (RuntimeError) 
    from /home/ross/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.9/lib/active_record/connection_adapters/mysql_adapter.rb:19:in `mysql_connection' 
    from /home/ross/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:229:in `new_connection' .... 

======= ================

Está claro que la gema está ahí, porque los rieles funcionan.

¿No sabe por qué no se encuentra la gema al ejecutar un script?

¿Alguien puede arrojar algo de luz sobre el problema?

Saludos Ross

Respuesta

15

Compruebe su primera database.yml

Tienes algo como esto:

development: 
    adapter: mysql 
    encoding: utf8 
    ... 

Para resolver el problema es necesario reemplazar mysql-mysql2.

versión correcta de database.yml

development: 
    adapter: mysql2 
    encoding: utf8 
    ... 
+0

Gracias. Sí, ese fue mi problema. Estaba usando un database.yml diferente para las secuencias de comandos de ruby ​​y había olvidado actualizar de mysql a mysql2 en esa versión de yml. Gracias por su pronta ayuda. Ross –

+0

De nada, Ross. –

21

En caso de que ayuda a nadie, en mi caso me había olvidado de cambiar el adaptador en database.yml a mysql2 de la base de datos de producción, la Gemfile estaba bien (la actualización de rails 2.3. 4 a 3.0.9).

Cuestiones relacionadas