2011-07-23 9 views
2

私が扱っている問題は次のとおりです。私は新しいRuby環境をインストールしました。私の現在のプロジェクトではI'ldは、次の宝石を使用したい:dm-mysql2-adapter(LoadError)が、なぜですか?

RAILS_VERSION = '~> 3.0.4' 
DM_VERSION = '~> 1.1.0' 

gem 'rails', '3.0.9' 

# Database & ORM 
gem 'mysql2', '< 0.3' 
gem 'data_mapper',  DM_VERSION 
gem 'dm-mysql-adapter', DM_VERSION 
gem 'dm-rails',   DM_VERSION 

# Authentication 
gem 'devise' 
gem 'dm-devise' 

私は、次のdatabase.ymlを持っている:

defaults: &defaults 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    pool: 5 
    username: blabla 
    password: albalb 
    host: localhost 
    socket: /tmp/mysql.sock 

実行「をインストールバンドルを」あらゆる種類のエラーになりません。しかし、すぐに、私は(「レールS」、または「すくいデシベル:移行」のような)データベースといくつかのことをしたいとfollingエラーがoccurrs:

/Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require': no such file to load -- dm-mysql2-adapter (LoadError) 
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency' 
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in' 
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency' 
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 

あなたはどのようにこの問題を解決するための任意のアイデアを持っていますか?

よろしく、

ヘラルド

+1

「アダプタ:mysql」についてはどうですか? – Dogbert

+0

アダプタ「mysql」を使用すると、データベースに関連するタスクを実行中に次のランタイムエラーが発生します。 mysql2 gemがありません。あなたのGemfileに追加してください:gem 'mysql2' - – Gerardo

+0

database.ymlからmysql2を削除したのに同じエラーが出ましたが、私のGemfileから削除するのを忘れました。エラー自体は非常に誤解を招くことです! ;)したがって、database.ymlとGemfileの両方でmysqlと置き換えてください。 – mltsy

答えて

0

これは、サブ標準符号化の結果として、DM-コアのバグです。 Iこのハックを修正するためのハックを犯し、ここでプルリクエストを提出した:https://github.com/datamapper/dm-core/pull/154

4

私はちょうど#datamapperとsolnicに入った私はこのことを理解して助けた:DataMapperのでmysql2宝石を使用する必要がない、なぜならdo-mysql( DataObjectドライバdm-mysql-adapterはMySQLリポジトリへのアクセスに依存しています)は文字エンコーディングに問題がありません。これはActiveRecordプロジェクトでmysql2ドライバを使用する理由です。

答えは、私はあなたがそれを使用している理由について誤解していない限り、あなたのGemfileとあなたのdatabase.ymlファイルからmysql2を削除(mysqlと交換)して、新しいbundle installを行い、であるので、あなたは必要はありませんそれ。

関連する問題