2011-09-07 118 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)。