2011-09-07 85 views
6

版本缺少mysql2宝石。它添加到您的Gemfile:宝石 'mysql2'

  • 红宝石1.9.2-P290
  • 轨3.0.9
  • mysql2-0.2.13下RVM
  • 的Ubuntu 11.04

gem安装有“gem install mysql2 -v'< 0.3'”。所有的依赖都被满足了。

导轨&'导轨c'工作正常。

我需要使用activerecord 3.0.9在rails环境之外运行脚本。当我运行该脚本,这是输出:

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

/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' .... 

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

很明显,宝石是存在的,因为铁轨的作品。

不知道为什么运行脚本时找不到gem?

任何人都可以解释一下这个问题吗?

问候 罗斯

回答

15

检查database.yml第一

你有这样的事情:

development: 
    adapter: mysql 
    encoding: utf8 
    ... 

解决你的问题,你需要更换mysqlmysql2

database.yml

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

谢谢。是的,那是我的问题。我为ruby脚本使用了不同的database.yml,并忘记了在该版本的yml中从mysql更新到mysql2。感谢您的及时帮助。 Ross –

+0

不客气,罗斯。 –

21

正确版本的情况下它可以帮助任何人,在我来说,我忘了在database.yml适配器更改为mysql2生产数据库中,Gemfile OK了(从rails 2.3升级。 4至3.0.9)。