In meiner Gemfile habe ich:
gem 'mysql2'
Meine database.yml lautet wie folgt:
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
Ich habe beide ausgeführt bundle update
und bundle install
und meine Gemfile.lock zeigt mysql2.
Beim Ausführen wird rake db:migrate
dies jedoch sowohl auf meinem Computer als auch auf dem Staging-Server angezeigt:
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).
.....
Nur um sicherzugehen war es keine schlechte Version von mysql2 oder etwas, das habe ich bundle clean --force
und lief bundle install
und bundle update
immer wenn ich laufe gem list
ich sehe mysql2 (0.4.0)
und keine anderen Versionen.
Irgendwelche Ideen wären sehr dankbar.
LÖSUNG
Derzeit handelt es sich um ein Problem mit Rails 4.1.x und 4.2.x. Gemäß diesem Fehlerbericht wird es in der nächsten Version von Rails 4.2.x behoben (Gutschrift an dcorr in den Kommentaren für den Link).
In der Zwischenzeit können Sie das Problem beheben, indem Sie ein Downgrade auf Version 0.3.18 von mysql2 durchführen, indem Sie diese Zeile zu Ihrer Gem-Datei hinzufügen:
gem 'mysql2', '~> 0.3.18'
mysql2 (0.4.0)
ist die neueste Version von Ruby Gems und sie ist bereits installiert.
gem 'mysql2', '~> 0.3.18'
in Gemfile.
bundle update mysql2