Trong gemfile của tôi, tôi có:
gem 'mysql2'
Cơ sở dữ liệu của tôi như sau:
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
Tôi đã chạy cả bundle update
và bundle install
Gemfile.lock của tôi hiển thị mysql2.
Tuy nhiên, khi tôi chạy, rake db:migrate
tôi nhận được điều này trên cả máy tính và máy chủ dàn dựng:
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).
.....
Chỉ cần chắc chắn rằng không có một phiên bản xấu của mysql2 hoặc một cái gì đó, tôi đã làm bundle clean --force
và ran bundle install
và bundle update
một lần nữa và khi tôi chạy gem list
tôi thấy mysql2 (0.4.0)
và không có các phiên bản khác.
Bất kỳ ý tưởng sẽ được đánh giá cao nhất.
GIẢI PHÁP
Hiện tại, đây là sự cố với Rails 4.1.x và 4.2.x, theo báo cáo lỗi này , nó sẽ được sửa trong bản phát hành tiếp theo của rails 4.2.x (ghi có vào dcorr trong các bình luận cho liên kết).
Trong thời gian đó, bạn có thể khắc phục bằng cách hạ cấp xuống phiên bản 0.3.18 của mysql2 bằng cách thêm dòng này vào gemfile của bạn:
gem 'mysql2', '~> 0.3.18'
mysql2 (0.4.0)
là phiên bản đá quý ruby mới nhất sẽ lấy và nó đã được cài đặt.
gem 'mysql2', '~> 0.3.18'
trong Gemfile.
bundle update mysql2