В моем 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 в комментариях за ссылку).
В то же время вы можете исправить это, выполнив версию mysql2 до версии 0.3.18, добавив следующую строку в свой gemfile:
gem 'mysql2', '~> 0.3.18'
источник
bundle update mysql2
mysql2 (0.4.0)
это новейшая версия ruby gems, и она уже установлена.gem 'mysql2', '~> 0.3.18'
в Gemfile.Ответы:
Просто дальнейшее обновление - решение в вопросе правильное.
4-й комментарий заслуживает внимания:
Я смог привязаться
Rails 4.2.4
к4-2-stable
ветке и заставить ее работать с последнимиmysql2
:источник
Просто сделать:
gem 'mysql2', '~> 0.3.18'
этот драгоценный камень работает сrails version 4.x.x
при установке
gem 'mysql2', '~> 0.4.0'
это выдает ошибку загрузки gem и вызывает проблемы совместимостиисточник
Эта проблема была решена здесь: https://github.com/brianmario/mysql2/issues/950
Gemfile:
Тогда беги
bundle update rails mysql2
Я в настоящее время использую MySQL v 8.0.11
источник
Ответ на этот конкретный вопрос относительно того, когда он был опубликован и
bundle update
какая версия Rails используется, заключается в том, что проблема вызвана обновлением версии mysql2 и вашей версии 0.4.x, которая имеет проблему несовместимости с последней версией Rails ActiveRecord.Опять же, обратите внимание, что это НЕ решение для людей, использующих старые версии Rails / ActiveRecord.
Быстрое решение - просто указать
mysql2
версию в вашем gemfile следующим образом:gem 'mysql2', '0.3.20'
Долгое решение - подождать, пока изменится обновление ActiveRecord или что-то в mysql2.
источник
Если вы можете обновить версию rails, измените Gemfile на этот, и это решит проблему без понижения версии mysql2 gem:
источник
Как полный новичок, я запутался в том, как это сделать, поэтому я просто проверил пробную проверку и, наконец, запустил свой сервер, вот как я это сделал.
попасть в файл рабочей директории ("работа") и оттуда попасть в файл созданного вами приложения ("sample_app"), в котором установлен mysql 2, перейти в файл gem ("Gemfile") и отредактировать гем "mysql2" в gem 'mysql2', '~> 0.3.18'
Теперь вернитесь к cmd и запустите команду "bundle install".
поэтому каталог для редактирования файла с учетом указанных выше файлов в скобках должен быть. "С \ работа \ sample_app \ Gemfile"
надеюсь, что я был какой-то помощи
источник
Обычно это происходит, когда на вашем компьютере отсутствуют некоторые пакеты mysql. Вы получаете какие-либо ошибки от
gem install mysql2
? На какой ОС вы работаете?Если на Debian или Ubuntu попробуйте
sudo apt-get install libmysqlclient-dev
.Также убедитесь, что драгоценный камень не находится внутри
group
оператора в вашем Gemfile.источник
Была та же проблема, но добавление
source 'https://rubygems.org'
в начало файла gem решило проблему.шаги:
добавить
source 'https://rubygems.org'
в свой файл драгоценного камня. Закомментируйтеmysql2 gem
и добавьтеgem 'mysql2', '~> 0.3.18'
Runbundle install
источник
попробуй это:
эта команда обновит ваш драгоценный камень «mysql2» до последней версии (должно быть 0.3.17 или выше) и запустит ваш сервер rails.
источник