私の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 Gemが取得する最新バージョンであり、すでにインストールされています。
gem 'mysql2', '~> 0.3.18'
Gemfileで。
bundle update mysql2