在我的 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 的问题,根据此 bug report ,它将在下一个版本的 Rails 4.2.x 中修复(该链接的注释归功于 dcorr)。
同时,您可以通过将以下行添加到您的 gemfile 来降级到 mysql2 版本 0.3.18 来修复:
gem 'mysql2', '~> 0.3.18'
请您参考如下方法:
就这样做:
gem 'mysql2', '~> 0.3.18'
此 gem 适用于 rails 版本 4.x.x
如果安装gem 'mysql2', '~> 0.4.0'
它会产生gem加载错误并导致兼容性问题