在我的gemfile中,我有:
gem 'mysql2'
我的database.yml如下:
default: &default
adapter: mysql2
database: <%= ENV['db_name'] %>
username: <%= ENV['db_user'] %>
password: <%= ENV['db_pass'] %>
host: <%= ENV['db_host'] %>
pool: 32
socket: <%= ENV['socket'] %>
development:
<<: *default
production:
<<: *default
我都运行了bundle update
,bundle install
并且我的Gemfile.lock显示mysql2。
但是,当我运行时,我rake db:migrate
在计算机和登台服务器上都收到了此消息:
myproject.com(master)$ rake db:migrate
WARNING: Use strings for Figaro configuration. 10000012508 was converted to "10000012508".
WARNING: Use strings for Figaro configuration. 860526407370038 was converted to "860526407370038".
rake aborted!
Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
.....
只是,以确保有没有mysql2什么不好的版本,我也bundle clean --force
就跑bundle install
,并bundle update
再次,当我跑gem list
我看mysql2 (0.4.0)
,并没有其他的版本。
任何想法将不胜感激。
解
根据此错误报告,当前是Rails 4.1.x和4.2.x的问题,它将在下一个Rails 4.2.x版本中修复(在链接的注释中注明为dcorr)。
同时,您可以通过将以下行添加到gemfile中来进行降级到mysql2版本0.3.18来进行修复:
gem 'mysql2', '~> 0.3.18'
mysql2 (0.4.0)
是,ruby gems将采用最新版本,并且已经安装。
gem 'mysql2', '~> 0.3.18'
在Gemfile中。
bundle update mysql2