Dans mon gemfile j'ai:
gem 'mysql2'
Ma database.yml est la suivante:
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
J'ai couru à la fois bundle update
et bundle install
et mes spectacles Gemfile.lock mysql2.
Cependant, lorsque je lance, rake db:migrate
j'obtiens ceci à la fois sur mon ordinateur et sur le serveur intermédiaire:
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).
.....
Juste pour m'assurer qu'il n'y avait pas une mauvaise version de mysql2 ou quelque chose du genre, je l'ai fait bundle clean --force
et j'ai couru bundle install
et bundle update
encore et quand je lance gem list
je vois mysql2 (0.4.0)
et aucune autre version.
Toutes les idées seraient très appréciées.
SOLUTION
C'est actuellement un problème avec Rails 4.1.x et 4.2.x, d'après ce rapport de bogue , il sera corrigé dans la prochaine version de rails 4.2.x (crédit à dcorr dans les commentaires pour le lien).
En attendant, vous pouvez corriger en faisant une mise à niveau vers la version 0.3.18 de mysql2 en ajoutant cette ligne à votre gemfile:
gem 'mysql2', '~> 0.3.18'
la source
bundle update mysql2
mysql2 (0.4.0)
dernière version que Ruby Gems prendra et elle est déjà installée.gem 'mysql2', '~> 0.3.18'
dans Gemfile.Réponses:
Juste une autre mise à jour - la solution à la question est correcte.
Le 4e commentaire mérite d'être noté:
J'ai pu me connecter
Rails 4.2.4
à la4-2-stable
branche et la faire fonctionner avec la dernière versionmysql2
:la source
Faites simplement:
gem 'mysql2', '~> 0.3.18'
ce bijou fonctionne avecrails version 4.x.x
si l'installation,
gem 'mysql2', '~> 0.4.0'
cela produit une erreur de chargement de gemmes et provoque des problèmes de compatibilitéla source
Ce problème a été résolu ici: https://github.com/brianmario/mysql2/issues/950
Gemfile:
Puis cours
bundle update rails mysql2
J'utilise actuellement mysql v 8.0.11
la source
La réponse à cette question particulière relative à la date de publication et à la version de Rails utilisée est que le problème est causé par la
bundle update
mise à jour de votre version de mysql2 vers 0.4.x qui a un problème d'incompatibilité avec le dernier Rails ActiveRecord.Encore une fois, veuillez noter que ce n'est PAS la solution pour les personnes utilisant des versions plus anciennes de Rails / ActiveRecord.
La solution rapide consiste simplement à spécifier la
mysql2
version dans votre gemfile comme suit:gem 'mysql2', '0.3.20'
La longue solution serait d'attendre une mise à jour d'ActiveRecord ou quelque chose dans mysql2 pour changer.
la source
Si vous êtes en mesure de mettre à jour votre version de rails, changez votre Gemfile pour cela et cela résoudra le problème sans rétrograder la version de mysql2 gem:
la source
En tant que débutant complet, je ne savais pas comment faire cela, alors j'ai juste fait une vérification d'essai et j'ai finalement fait fonctionner mon serveur, voici comment je l'ai fait fonctionner.
entrez dans le fichier du répertoire de travail ("work") et à partir de là, entrez dans le fichier de l'application que vous avez créée ("sample_app") sur laquelle mysql 2 est installé aller au fichier gem ("Gemfile") éditer le gem 'mysql2' en gem 'mysql2', '~> 0.3.18'
maintenant revenez à cmd et exécutez la commande "bundle install".
donc le répertoire pour éditer le fichier en tenant compte des fichiers ci-dessus entre crochets devrait être. "c \ work \ sample_app \ Gemfile"
j'espère que j'ai été d'une certaine aide.
la source
Cela se produit généralement lorsque vous manquez des paquets mysql sur votre machine. Avez-vous des erreurs
gem install mysql2
? Sur quel OS travaillez-vous?Si sur debian ou ubuntu, essayez
sudo apt-get install libmysqlclient-dev
.Assurez-vous également que la gemme n'est pas placée dans une
group
déclaration de votre Gemfile.la source
J'ai eu le même problème mais l'ajout
source 'https://rubygems.org'
au début du fichier gem a résolu le problème.Pas:
ajouter
source 'https://rubygems.org'
à votre fichier gem. Commentezmysql2 gem
et ajoutezgem 'mysql2', '~> 0.3.18'
Runbundle install
la source
essaye ça:
cette commande mettra à jour votre gem 'mysql2' avec la dernière version (devrait être 0.3.17 ou plus) et démarrera votre serveur rails.
la source