我正在尝试将我的应用推送到heroku,但我收到了此消息。
Gem::LoadError: Specified 'sqlite3' for database adaptor, but the gem is not loaded.
但我没有。我的database.yml文件中没有sqlite3
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
我的适配器名称是psotgresql。我甚至自己打开了文件
cat database.yml
我在文件中搜索但找不到postgresql。这是我的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'
我的pg位于生产环境中。我已经运行了bundle install,bundle update,git add,git commit和git push heroku master多次,我仍然收到这条消息。
我不明白这一点。我没有为我的数据库适配器指定sqlite3。
我不知所措。
答案 0 :(得分:20)
我必须将sqlite3版本指定为1.3.13:
gem 'sqlite3', '~> 1.3.13'
然后运行bundle update
。
答案 1 :(得分:5)
我也遇到了这个问题。我发现安装的sqlite3是1.4.2版。 为了解决这个问题,我添加了以下代码:
gem'sqlite3','〜> 1.3.6','<1.4'
以下是我的设置:
$ 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
答案 2 :(得分:3)
听起来你可能有:
忘记运行bundle update
或bundle install
来更新Gemfile.lock
文件,或
在推送给Heroku之前,忘了用Gemfile
将Gemfile.lock
和git commit
更改提交给Git。
如果您的问题是2 nd 的情况,那么这个问题是重复的,我只需要在某个地方找到规范问题......
答案 3 :(得分:2)
我有这个问题。
我从Gemfile.lock中手动删除了“pg(0.17.1)”以试图掩盖我的曲目,而忽略了将'--without production'参数放入bundle install
。添加回来解决了这个问题。
答案 4 :(得分:0)
在cloud9 IDE(amazon)上启动Rails 5.0教程时遇到相同的问题。通过在云编辑器中运行{rails new}安装的默认sqlite3版本是3.7.17 2013-05-20
这解决了我的问题:gem 'sqlite3', '~> 1.4.0'}
此后,我成功启动了“是的,您在轨道上”页面
答案 5 :(得分:0)
在测试环境中,您没有特定的DB gem。将“ pg”宝石从生产和开发转移到普通生产。