web-dev-qa-db-fra.com

Ruby on Rails - "Ajouter 'gem sqlite3' 'à votre Gemfile"

Je suis un n00b complet sur Rails avec seulement une connaissance débutante de Ruby. J'ai l'intention d'étudier Ruby plus avant d'apprendre vraiment Rails, mais je suis waayy trop curieux pour mon bien.

Quoi qu'il en soit, je suivais le tutoriel, mais je suis resté coincé quand il a dit de taper "Rails server" dans le répertoire du blog. Il indique, "spécifié" sqlite3 "pour l'adaptateur de base de données, mais la gemme n'est pas chargée. Ajouter gem 'sqlite3' à votre Gemfile. "J'ai donc quitté le serveur, installé sqlite3, rétabli le serveur ... pour obtenir à nouveau ce message. sqlite3 n'apparaît pas lorsque je fais" la liste des gemmes ", mais je vois le dossier dans ma racine Ruby.

Si cela aide, j'ai Ruby 2.0, Rails 4.0, sqlite3 1.3.7

Je m'excuse si cela a déjà été répondu ailleurs, mais je n'ai rien trouvé dans la vaste base de données qui est stackoverflow. Je vous serais reconnaissant de toute patience que vous êtes disposé à fournir.

Merci beaucoup! hewhocomes

19
hewhocomes

Problème résolu!

Il s'avère que c'était plusieurs problèmes différents:

  1. J'ai précédemment oublié que sqlite3 devait être installé pour fonctionner, comme indiqué dans le guide de démarrage de rubyonrails.org. Le guide m'a donné un lien vers sqlite.com, à partir duquel j'avais besoin de télécharger la commande Shell et la DLL, les deux sont sous "Binaires précompilés pour Windows". Plus d'informations ci-dessous.

  2. L'installation de gem m'a donné une erreur indiquant qu'il ne pouvait rien télécharger à partir de rubygems.org. Il s'est avéré qu'il y avait une nouvelle version de rubygems dont je n'étais pas au courant. Corrigé avec la mise à jour de gem - système.

  3. J'ai essayé gem install sqlite3 --platform = Ruby, mais en vain. Il n'a pas pu créer une extension native et n'a pas pu trouver sqlite3.h.

  4. J'avais aussi posé ma question sur Ruby-forums. http://www.Ruby-forum.com/topic/4415126 Ici, un Joel Pearson (virtuose) a fourni les fichiers manquants dont j'avais besoin via une pièce jointe, car ces fichiers ne sont pas fournis dans sqlite.com . J'ai suivi ses instructions, notamment en plaçant les fichiers Shell et dll dans le répertoire bin de mon Ruby racine ... et cela a fonctionné!

Donc, fondamentalement, j'ai pu installer sqlite3 sans modifier aucun Gemfile ou Gemfile.lock. Ma liste de gemmes affiche sqlite3 (1.3.7) et l'écran de bienvenue de Rails apparaît maintenant comme le montre le guide de démarrage! J'utilise Windows 7-64 bits, Ruby 2.0, Rails 4.0 et j'ai maintenant sqlite3 1.3.7.

Merci beaucoup à tous d'avoir donné ce conseil et cette orientation au n00b. Je trouve qu'ayant exploré les Gemfiles ainsi que mon répertoire racine Ruby répertoire, je comprends comment Ruby et Rails sont adaptés) dans mon ordinateur mieux.

En tant que débutant, je recommanderais de pouvoir télécharger les fichiers et dossiers sqlite3 nécessaires pour l'installer sur Windows à la fois sur le guide de démarrage de rubyonrails.org et sur sqlite.com.

Merci encore! hewhocomes

4
hewhocomes

J'ai fait apparaître cette erreur avec la même version de Ruby/Rails/SQLite que vous avez spécifié dans votre question même après avoir confirmé que mon gemfile a gem 'sqlite3'. Je ne sais pas quel système d'exploitation vous avez (c'est pourquoi vous avez probablement été rejeté) mais j'utilise Windows 7 x64.

Afin d'obtenir la gemme à installer dans mon Rails, j'ai dû éditer le fichier Gemfile.lock pour remplacer sqlite3 (1.3.7-x86-mingw32) par sqlite3 (1.3.7)

Ensuite, après avoir exécuté l'installation du bundle, je vois enfin dans la sortie

Using sqlite3 (1.3.7)

Lors de l'exécution du serveur Rails, je (enfin) vois la page "Bienvenue à bord".

20
Paul

Dans mon cas, cette erreur "Specified 'sqlite3' for database adapter, but the gem is not loaded. Add gem 'sqlite3' to your Gemfile." un message est apparu lorsque j'ai exécuté Rails server juste après avoir généré une nouvelle application Rails. C'était avec Rails version 4.1.16 (Ruby version 2.3.1)

gem 'sqlite3', '~> 1.3.0'

Cette ligne dans Gemfile a supprimé le message d'erreur. Je pense que le nouveau gem sqlite (version 1.4) a un conflit avec l'ancien Rails (version 4.1) mais je n'ai vu aucun problème lié sur leur dépôt Github. J'ajoute cette réponse ici parce que cela pourrait aider tous ceux qui vivent la même situation que moi.

13
kangkyu

J'aurais le même problème sur une victoire x64 7.

Solution (pour moi):

1) Installez sqlite3

installation de gem sqlite3

2) Vérifiez la version installée

liste de gemmes sqlite3

Cela me donne: sqlite3 (1.3.8 x64-mingw32)

3) Modifiez le Gemfile.lock

Je change "sqlite3 (1.3.8-x86-mingw32)" par "sqlite3 (1.3.8-x64-mingw32)

Cela fonctionne :) Notez que vous devez ajouter un "-" entre le numéro de version et le x64 dans Gemfile.lock

Xmass

12
Xmass
  1. Ne faites pas une autre base de données globale et ensuite rendez sqlite3 spécifique à un environnement sur votre fichier gem.
  2. Utilisez une gemme précédente.
  3. Assurez-vous d'exécuter bundle install, puis bundle update, et enfin bundle install.

Votre Gemfile peut inclure des entrées comme celle-ci:

group :development, :production do
  gem 'pg', '0.15.1'
end

group :test do
  gem 'sqlite3', '1.3.6'
end
5
Lesly Revenge

Pour moi, cela a aidé à mettre la version après gem 'sqlite3' Dans gemfile, donc c'est devenu gem 'sqlite3', '1.3.7'. Auparavant, j'essayais de compiler sqlite3, une mise à jour de gem, etc ... Rails n'était pas encore en mesure de "l'accepter", donc finalement la définition de la version a aidé.

3
Kris Avi

a travaillé pour moi Sudo apt-get install libsqlite3-dev

2
Eduardo Herrera

Une autre solution potentielle trouvée sur cet article

J'ai déjà installé sqlite, mais apparemment depuis le 4 février 2019, il y a un problème avec la gem sqlite3 v1.4.0.

En attendant, vous pouvez revenir à la v1.3.6 en ajoutant cette version à la ligne "sqlite3" dans votre Gemfile, comme ceci:

gem 'sqlite3', '~> 1.3.6'

J'espère que cela fait gagner du temps à quelqu'un!

1
gwalshington

Une petite note, mais importante, pour quiconque rencontre cette erreur. Avant la version 1.4, Bundler ne pouvait pas comprendre les gemmes 64 bits sous Windows ( https://github.com/bundler/bundler/issues/2658 ), ce qui explique pourquoi les versions 32 bits apparaissaient dans Gemfile. fermer à clé.

Changement manuel:

"sqlite3 (1.3.8-x86-mingw32" to "sqlite3 (1.3.8-x64-mingw32)"

fonctionne si vous utilisez une ancienne version de bundler. Bundler devrait être en mesure de comprendre automatiquement les choses maintenant si vous mettez à niveau (1.5.2 fonctionne actuellement pour moi).

1
Corlew Solutions

Exécutez les commandes dans l'ordre suivant

Sudo apt-get install libsqlite3-dev

Sudo gem install sqlite3-Ruby

gem list

Après cette commande, vous verrez les versions suivantes de sqlite

sqlite3 (1.3.12)

sqlite3-Ruby (1.3.3)

1
Syed_Shahiq

Ajoutez simplement cette ligne à votre Gemfile, qui se trouve dans le dossier racine de votre application

  gem 'sqlite3'
0
maximus ツ