Rails mysql2, undefined method 'accept' for nil:NilClass on rake db:migrate



所以我正在一个 Rails 应用程序中工作,该应用程序在 Gemfile 中有以下内容:

gem 'mysql2', '<0.4'

我继续以下工作:

  • 捆绑安装
  • 耙子数据库:创建

从这里我得到

安装 mysql2 (0.3.21) 时出错,捆绑器无法 继续。

所以我把它更新到

gem 'mysql2', '~> 0.4.10'

运行捆绑安装并耙 db:create。

所以我最终得到

加载错误:请安装 mysql2 适配器:gem install activerecord-mysql2-adapter(无法激活 mysql2 (~> 0.3.10), 已经激活了 MySQL2-0.4.10。确保添加了所有依赖项 到宝石文件。

Gem::加载错误:无法激活 mysql2 (~> 0.3.10),已激活 mysql2-0.4.10. 确保所有依赖项都添加到 Gemfile 中。

从这里开始,如果我尝试 rails 控制台,我最终会得到:

block (2 levels) in replace_gem': Please install the mysql2 adapter: gem 安装 activerecord-mysql2-adapter'(无法激活 mysql2 (~>0.3.10),已经激活了 mysql2-0.4.10。确保所有依赖项都已添加到 Gemfile。(加载错误)

所以我更新了我的宝石文件,使其具有:

gem 'mysql2', '~> 0.4.10' gem 'activerecord-mysql2-adapter'

Rails 控制台工作,但耙 db:migrate 结果

耙子中止了!NoMethodError: 未定义的方法"accept" for nil:nilClass

我找到的解决方案就是删除 activerecord-mysql2-adapter...这是行不通的。

作为参考,我正在使用:ruby 2.3.5,导轨 3.2.22.5

如果您使用的是过时的 Rails 版本(并且 3.2 非常过时),则需要使用兼容版本的mysql2如果这是 0.3.21,则:

gem 'mysql2', '~> 0.3.21'

别的都行不通。

最新更新