【问题标题】:dm-mysql2-adapter (LoadError) but why?dm-mysql2-adapter (LoadError) 但为什么呢?
【发布时间】:2011-10-11 15:10:56
【问题描述】:

我正在处理的问题如下。我已经安装了一个全新的 ruby​​ 环境。在我当前的项目中,我想使用以下 gem:

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

执行“捆绑安装”不会导致任何类型的错误。但是一旦我想对数据库做一些事情(比如“rails s”或“rake db:migrate”),就会发生以下错误:

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

你知道如何解决这个问题吗?

最好的问候,

杰拉尔多

【问题讨论】:

  • 如果我使用适配器'mysql',那么在执行与数据库相关的任务时会出现以下运行时错误:!!!缺少 mysql2 gem。将其添加到您的 Gemfile:gem 'mysql2' -
  • 当我从 database.yml 中删除 mysql2 但忘记从我的 Gemfile 中删除时,我得到了同样的错误。错误本身非常具有误导性! ;) 因此,请确保在 database.yml 和 Gemfile 中都将其替换为 mysql

标签: ruby-on-rails configuration rubygems


【解决方案1】:

这是 dm-core 中的一个错误,是由于编码不符合标准。我已经提交了一个黑客来修复这个黑客并在这里提交了一个拉取请求:https://github.com/datamapper/dm-core/pull/154

【讨论】:

    【解决方案2】:

    我刚刚进入#datamapper,solnic 帮助我理解了这一点:不需要将 mysql2 gem 与 DataMapper 一起使用,因为 do-mysql(DataObject 驱动程序 dm-mysql-adapter 依赖于访问 MySQL 存储库)字符编码没有问题,这就是我(我想大多数人)在 ActiveRecord 项目中使用 mysql2 驱动程序的原因。

    所以答案是,除非我弄错了您使用它的原因,否则请从您的 Gemfile 和 database.yml 文件中删除 mysql2(将其替换为 mysql)并创建一个新的 bundle install,你不应该需要它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      相关资源
      最近更新 更多