En mi gemfile tengo:
gem 'mysql2'
Mi database.yml es la siguiente:
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
He corrido tanto bundle update
y bundle install
ya mis espectáculos Gemfile.lock mysql2.
Sin embargo, cuando ejecuto rake db:migrate
obtengo esto tanto en mi computadora como en el servidor provisional:
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).
.....
Solo para asegurarme de que no había una mala versión de mysql2 o algo así, lo hice bundle clean --force
y corrí bundle install
y bundle update
nuevamente y cuando corro gem list
veo mysql2 (0.4.0)
y no hay otras versiones.
Cualquier idea sería muy apreciada.
SOLUCIÓN
Actualmente es un problema con Rails 4.1.xy 4.2.x, según este informe de error , se solucionará en la próxima versión de rails 4.2.x (crédito a dcorr en los comentarios para el enlace).
Mientras tanto, puede solucionarlo al actualizar a la versión 0.3.18 de mysql2 agregando esta línea a su archivo de gemas:
gem 'mysql2', '~> 0.3.18'
fuente
bundle update mysql2
mysql2 (0.4.0)
es la versión más nueva que tomarán ruby gems y ya está instalada.gem 'mysql2', '~> 0.3.18'
en Gemfile.Respuestas:
Solo una actualización más: la solución en la pregunta es correcta.
Vale la pena tomar nota del cuarto comentario:
Pude vincularme
Rails 4.2.4
a la4-2-stable
sucursal y hacer que funcionara con lo últimomysql2
:fuente
Solo haz:
gem 'mysql2', '~> 0.3.18'
esta gema trabaja conrails version 4.x.x
si instala
gem 'mysql2', '~> 0.4.0'
produce un error de carga de gemas y causa problemas de compatibilidadfuente
Este problema se abordó aquí: https://github.com/brianmario/mysql2/issues/950
Gemfile:
Entonces corre
bundle update rails mysql2
Actualmente estoy usando mysql v 8.0.11
fuente
La respuesta a esta pregunta en particular en relación con el momento en que se publicó y la versión de Rails utilizada es que el problema se debe a
bundle update
actualización de su versión de mysql2 a 0.4.x que tiene un problema de incompatibilidad con el último ActiveRecord de Rails.Nuevamente, tenga en cuenta que esta NO es la solución para las personas que usan versiones anteriores de Rails / ActiveRecord.
La solución rápida es simplemente especificar la
mysql2
versión en su archivo de gemas de la siguiente manera:gem 'mysql2', '0.3.20'
La solución larga sería esperar a que cambie una actualización de ActiveRecord o algo en mysql2.
fuente
Si puede actualizar su versión de rails, cambie su Gemfile a esto y resolverá el problema sin degradar la versión de mysql2 gem:
fuente
Como principiante completo, me confundí sobre cómo hacer esto, así que solo hice una comprobación de prueba y finalmente conseguí que mi servidor funcionara, así es como lo hice funcionar.
ingrese al archivo del directorio de trabajo ("work") y desde allí ingrese al archivo de la aplicación que creó ("sample_app") que tiene instalado mysql 2, vaya al archivo gem ("Gemfile") edite gem 'mysql2' para gem 'mysql2', '~> 0.3.18'
ahora regrese a cmd y ejecute el comando "bundle install".
entonces el directorio para editar el archivo teniendo en cuenta los archivos anteriores entre paréntesis debería ser. "c \ work \ sample_app \ Gemfile"
Espero haber sido de alguna ayuda.
fuente
Esto suele suceder cuando faltan algunos paquetes mysql en su máquina. ¿Tienes algún error de
gem install mysql2
? ¿En qué sistema operativo estás trabajando?Si en Debian o Ubuntu intenta
sudo apt-get install libmysqlclient-dev
.También asegúrese de que la gema no se coloque dentro de una
group
declaración en su Gemfile.fuente
Tuve el mismo problema pero agregando
source 'https://rubygems.org'
a la parte superior del problema resuelto del archivo de gemas.Pasos:
agregar
source 'https://rubygems.org'
a su archivo de gemas. Comentamysql2 gem
y agregagem 'mysql2', '~> 0.3.18'
Ejecutarbundle install
fuente
prueba esto:
este comando actualizará su gema 'mysql2' a la última versión (debe ser 0.3.17 o superior) e iniciará su servidor rails.
fuente