2011-04-30 11 views
32

Hola, estoy usando rails versión 3.0.7 cuando ejecuto rails genero el nombre de la tarea modelo: string im siguiendo advirtiendoversión de mysql2 (0.3.2) no se incluye con el adaptador ActiveRecord incluido ya que ahora es parte de Rails 3.1

WARNING: This version of mysql2 (0.3.2) doesn't ship with the ActiveRecord adapter bundled anymore as it's now part of Rails 3.1 
WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x 
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `establish_connection': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError) 
    from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/connection_adapters/abstract/connection_specification.rb:60:in `establish_connection' 
    from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in `establish_connection' 
    from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/railtie.rb:59 
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval' 
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook' 
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:43:in `run_load_hooks' 
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:42:in `each' 
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks' 
    from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/base.rb:1904 
    from /home/sun/railsapp/dog/vendor/plugins/attribute_fu/init.rb:1 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/plugin.rb:81 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `instance_exec' 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `run' 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:50:in `run_initializers' 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `each' 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `run_initializers' 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:134:in `initialize!' 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:77:in `send' 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing' 
    from /home/sun/railsapp/dog/config/environment.rb:5 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:103:in `require' 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:103:in `require_environment!' 
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/commands.rb:16 
    from script/rails:6:in `require' 
    from script/rails:6 

cuando intento instalar activerecord-mysql2-adaptador por: gem install activerecord-mysql2 adaptador ERROR: no se pudo encontrar una joya válida 'activerecord-mysql2 adaptador' (> = 0) en cualquier repositorio

por favor ayúdenme gracias

+0

su propio repositorio no tienen una versión más alta –

+0

por favor utilice la búsqueda, algunas personas ya se hizo esta pregunta. Y parece que incluso más personas están teniendo problemas con el adaptador mysql2 :( – Augusto

Respuesta

91

El problema se debe a que usted está tratando de instalar la versión de lastet mysql2 cual es incompatible con la versión 3.0.x rieles

SO, en su Gemfile cambiar la línea de joya mysql2 para esto:

gem 'mysql2', '< 0.3' 

continuación bundle comando

y luego, cuando el nuevo archivo mysql2 joya (creo que es 0.2.7) que va a resolver el problema

+0

Muchas gracias eveevans funciona :) –

+0

@ monk151947 debe marcar esto como la respuesta. Gracias a todos, esto funcionó para mí. – blackrobot

+0

También te agradeceré.Mi entorno se volvió raro últimamente y tuve que actualizar las cosas. Después de mi actualización, recibía los errores del adaptador mysql2. Hice lo que me indicaron y traté de ejecutar esa instalación de gema para el adaptador, pero, por supuesto, eso no funcionó. ¡Te agradezco que nos hayas salvado! – Tass

0

WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x

así que en breve solo use lo último en la rama 0.2.x para la gema mysql2.

1

gema 'mysql2', '< 0.3' es la única manera en Rails 3.0.7 (antes 3.1)

ACTUALIZACIÓN: lo siento, ese no era el caso también, tampoco funcionó, hay una mejor manera:

vendedor/paquete/ruby ​​/ 1.9.1/joyas/connection_adapters [rails307] $ ls em_mysql2_adapter.rb mysql2_adapter.rb

archivo/mysql2-0.3.2/lib/$ active_record toma de mysql2_adapter.rb mysql2 gem versión 0.2.x y cópielo en la ubicación anterior

ahora funciona para mí con solo gema 'mysql2' en Gemfile

1

Después de probar la solución ofrecida por @eveevans, todavía tenía problemas de versión. Luego, al leer la sugerencia de @rubyconvict, pensé en usar la opción -v para gema en lugar de presionar sobre los archivos.

Aquí es lo que encontré finalmente se resolvió mi lucha con la "versión de mysql2 (0.3.2)" temido mensaje en DreamHost:

# in mysql, create example_app & example_app_test ... 
# ... for the purposes of this example only, production == development db 
rails new example_app --database=mysql --freeze 
cd example_app 
vim config/database.yml 
# change settings for host, user, password ... 
# ... database for test (example_app_test) ... 
# ... & database for production & development (example_app) 

vim Gemfile 
# gem 'mysql2', '< 0.3' 

gem uninstall mysql2  # if installed: gem list -d mysql2 
gem install mysql2 -v 0.2.7 
rake db:migrate  

A partir de ahí, puedo pasar a otra diversión RoR, como tal vez la modificación rutas (vim config/routes.rb ... aunque su kilometraje puede variar).

2

si aún no funciona probar esto también:

sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Users/YOUR_USER_NAME/.rvm/gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle 
Cuestiones relacionadas