在我的宝石档案里有:
gem 'mysql2'
我的 datase.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 的功劳)。
同时,你可以通过把 mysql2的版本降级到0.3.18来修复这个问题:
gem 'mysql2', '~> 0.3.18'