【问题标题】:"Please install the mysql2 adapter"“请安装 mysql2 适配器”
【发布时间】:2013-01-16 08:58:45
【问题描述】:

我正在尝试关注这个Redmine setup tutorial。当我要启动服务器时,我输入 sudo rails server 并收到以下错误:

Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (mysql2 is not part of the bundle. Add it to Gemfile.) (LoadError)

我的 Gemfile 的相关部分如下:

....
if File.exist?(database_file)
database_config = YAML::load(ERB.new(IO.read(database_file)).result)
adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
if adapters.any?
  adapters.each do |adapter|
    case adapter
    when /mysql/
      gem "mysql", "~> 2.8.1", :platforms => [:mri_18, :mingw_18]
      gem "mysql2", "~> 0.3.11", :platforms => [:mri_19, :mingw_19]
      gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
...

并且 Gemfile.lock 包含 mysql2:

...
multi_json (1.5.0)
mysql (2.8.1)
mysql2 (0.3.11)
net-ldap (0.3.1)
...

我的 database.yml 文件包括以下内容:

...
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: ****
  password: ****

development:
  adapter: mysql2
  database: redmine_development
  host: localhost
  username: ****
  password: ****
  encoding: utf8
...

运行bundle install似乎成功了,但是输出中没有列出mysql2,which mysql2什么也不返回,bundle show mysql2返回Could not find gem 'mysql2' in the current bundle.

我已经卸载并重新安装了 mysql2 gem,每次都明显成功。

我已经阅读了关于其他 stackoverflow 问题的类似问题的描述,但他们的解决方案都没有解决我的问题。

【问题讨论】:

    标签: ruby gem bundler redmine mysql2


    【解决方案1】:

    如果mysql2 未包含在bundle 生成的Gemfile.lock 文件中,您将收到此错误。 Gemfile 用于管理依赖关系,而 lock 文件是 rails 应用程序实际加载的文件。

    这是一个比我以前见过的更详细的 Gemfile(我对 Redmine 并不熟悉)——这是从哪里来的?它似乎不是来自最新的稳定来源。如果您知道您将使用 mysql2,我认为您没有任何理由需要您的 Gemfile 来解析您的数据库配置。无论出于何种原因,它都没有正确读取 database.yml 文件。

    尝试在任何块或循环之外添加gem 'mysql2',然后再次运行bundle

    【讨论】:

    • 我尝试在任何 ifs 和 bundle install'ed 之外添加 gem 'mysql2'。没有骰子。此外,我的 Gemfile 比我刚刚粘贴的那一点要长。这是有问题的迹象吗?在这方面我是个 n00b。
    • 另外,mysql2 包含在 Gemfile.lock 中。编辑问题以反映这一点。
    • mysql2 不应在multi_json 下缩进。尝试在Gemfile.lock 中去除凹痕并查看它是否加载。如果是这样,您将需要重新访问您的 Gemfile 以更正这些依赖关系。
    • 呃,不是。那是一个错字。抱歉,我已经解决了。
    猜你喜欢
    • 2013-05-09
    • 2013-03-15
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多