由于sqlite3,Heroku无法部署

时间:2013-10-16 00:50:30

标签: ruby-on-rails ruby heroku sqlite

这有点奇怪,但我刚刚更新了我的机器以使用ruby 2.0和rails 4.0但是当我尝试推送到heroku存储库时,我不断收到错误。我得到了

的内容
/tmp/build_1f394d14-4e73-419e-9e8f-3bb30d37dc63/vendor/ruby-2.0.0/bin/ruby extconf.rb
   checking for sqlite3.h... no
   sqlite3.h is missing. Try 'port install sqlite3 +universal'
   or 'yum install sqlite-devel' and check your shared library search path (the
   location where your sqlite3 shared library is located).
   *** extconf.rb failed ***

所以这里显而易见的问题是没有安装sqlite3,这就是它失败的原因。我按照以下步骤安装了sqlite3

$: port install sqlite3 +universal

zsh: command not found: port Duhhh ......它失败了,因为我的机器上没有macports

所以我做了

brew install sqlite3 +universal

要验证sqlite3是否正常工作

sqlite3 -version
3.7.12 2012-04-03 19:43:07 86b8481be7e76cccc92d14ce762d21bfb69504af

既然安装了sqlite3,我重新尝试了我的git push heroku master,我仍然收到相同的错误消息。任何提示将不胜感激。

的Gemfile

source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0

    gem 'rails', '4.0.0'
    gem 'sqlite3', '1.3.8'

    group :development do
      gem 'sqlite3', '1.3.8'
    end

    gem 'sass-rails', '4.0.0'
    gem 'uglifier', '2.1.1'
    gem 'coffee-rails', '4.0.0'
    gem 'jquery-rails', '3.0.4'
    gem 'turbolinks', '1.1.1'
    gem 'jbuilder', '1.0.2'

    group :doc do
      gem 'sdoc', '0.3.20', require: false
    end

    group :production do
      gem 'pg', '0.15.1'
      gem 'rails_12factor', '0.0.2'
    end

2 个答案:

答案 0 :(得分:0)

您应该删除Gemfile开发组之外的行gem 'sqlite3', '1.3.8'。并移动开发组中的sqlite3引用以包含测试组:

group :development, :test do
  gem 'sqlite3', '1.3.8'
end

问题是heroku使用PostgreSQL,当你部署时,它正在尝试使用sqlite3 gem,因为它在开发组之外以及在其内部。

答案 1 :(得分:0)

错误发生在Heroku环境端,而不是本地计算机上。

删除此行

gem 'sqlite3', '1.3.8'
来自Gemfile的

,只在开发组块中保留sqlite3引用。执行包更新,提交和推送。

Heroku环境中没有Sqlite(你不需要它,因为你将使用Postgres)。