简体   繁体   中英

Gem::LoadError: Specified 'sqlite3' for database adapter, but the gem is not loaded

I'm trying to push my app to heroku but am getting this message.

Gem::LoadError: Specified 'sqlite3' for database adaptor, but the gem is not loaded.

But I did not. I don't have sqlite3 anywhere in my database.yml file

development:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  timeout: 5000
  host:  localhost

test:
  adapter: postgresql
  database: blog_test
  pool: 5
  timeout: 5000

production:
  adapter: postgresql
  database: blog_production
  pool: 5
  timeout: 5000

My adapter name is psotgresql. I even opened the file myself

cat database.yml

I searched through the file but could not find postgresql. Here is my gemfile

ruby '2.1.0'
gem 'rails', '4.1.1'

group :development, :test do
  gem 'pg', '0.17.1'
  gem 'rspec-rails', '3.0.1'
end

group :production do
  gem 'pg', '0.17.1'
  gem 'rails_12factor'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  gem 'capybara', '2.1.0'
end

gem 'sass-rails', '~> 4.0.2'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'sprockets-rails', '~> 2.1.3'
gem 'bootstrap-sass', '3.1.1.1'

gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.1.1'

group :doc do

  gem 'sdoc', require: false
end

gem 'bcrypt', '~> 3.1.7'

I have pg located in the production environment here. I have ran bundle install, bundle update, git add, git commit, and git push heroku master numerous times and I still get this message.

I don't understand this. I did NOT specify sqlite3 for my database adaptor.

I'm at a loss for words.

I had to specify my sqlite3 version as 1.3.13:

gem 'sqlite3', '~> 1.3.13'

Then run bundle update .

I've also encountered this problem. I found out that the installed sqlite3 is version 1.4.2. To solve it, I add this code:

gem 'sqlite3', '~> 1.3.6', '< 1.4'

Below is my setup:

$ rails -v

Rails 4.2.3

$ gem env

RubyGems Environment:
– RUBYGEMS VERSION: 2.5.1
– RUBY VERSION: 2.3.0 (2015-12-25 patchlevel 0) [x86_64-linux]
– INSTALLATION DIRECTORY: /home/armano/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0
– USER INSTALLATION DIRECTORY: /home/armano/.gem/ruby/2.3.0
– RUBY EXECUTABLE: /home/armano/.rbenv/versions/2.3.0/bin/ruby
– EXECUTABLE DIRECTORY: /home/armano/.rbenv/versions/2.3.0/bin
– SPEC CACHE DIRECTORY: /home/armano/.gem/specs
– SYSTEM CONFIGURATION DIRECTORY: /home/armano/.rbenv/versions/2.3.0/etc

It sounds like you might have either:

  1. forgot to run bundle update or bundle install to update your Gemfile.lock file, or

  2. forgot to commit your Gemfile and Gemfile.lock changes to Git with git commit before pushing to Heroku.

If your problem is the 2 nd case, then this question is a duplicate, I just have to find the canonical question around somewhere...

I had this issue.

I had manually removed "pg (0.17.1)" from Gemfile.lock in an attempt to cover my tracks after neglecting to put the '--without production' param in for bundle install . Adding back solved the issue.

Had same issue when starting a rails 5.0 tutorial on cloud9 IDE (amazon). Default sqlite3 version installed by running {rails new} within the cloud editor was 3.7.17 2013-05-20

this solved my problem : gem 'sqlite3', '~> 1.4.0'

After this I succeeded to launch the "yay you're on rails page"

In test environment you not have specific DB gem. Move 'pg' gem from production and development to common.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM