Sqlite 3 install error on Heroku, Rails 3.1

Hello Rails people.

I tried to push a Rails 3.1 app ( created using cedar stack) to Heroku
and I encountered the following error

Installing sqlite3 (1.3.4) with native extensions Unfortunately, a
fatal error has occurred. Please report this error to the Bundler
issue tracker at https://github.com/carlhuda/bundler/issues so that we
can fix it. Thanks!
       /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue
in block in build_extensions': ERROR: Failed to build gem native
extension. (Gem::Installer::ExtensionBuildError)
       /usr/local/bin/ruby extconf.rb
       checking for sqlite3.h... no
       sqlite3.h is missing. Try 'port install sqlite3 +universal'
       or 'yum install sqlite3-devel' and check your shared library
search path (the
       location where your sqlite3 shared library is located).
       *** extconf.rb failed ***
       Could not create Makefile due to some reason, probably lack of
       necessary libraries and/or headers. Check the mkmf.log file
for more
       details. You may need configuration options.
       Provided configuration options:
       --with-opt-dir
       --without-opt-dir
       --with-opt-include
       --without-opt-include=${opt-dir}/include
       --with-opt-lib
       --without-opt-lib=${opt-dir}/lib
       --with-make-prog
       --without-make-prog
       --srcdir=.
       --curdir
       --ruby=/usr/local/bin/ruby
       --with-sqlite3-dir
       --without-sqlite3-dir
       --with-sqlite3-include
       --without-sqlite3-include=${sqlite3-dir}/include
       --with-sqlite3-lib
       --without-sqlite3-lib=${sqlite3-dir}/lib
       --enable-local
       --disable-local
       Gem files will remain installed in /tmp/build_z66vpx0uo7v1/
vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.4 for inspection.

the message indicates something serious is going on. Can it be fixed?

SQLite3 is not available as database on Heroku.

Only database available is PostgreSQL:

http://devcenter.heroku.com/articles/database

You need to modify your Gemfile to limit sqlite3 to development/test
environment and add 'pg' gem for production one.

Maybe it's because Heroku doesn't use sqlite in production, instead it uses Postgres.

I think you should try to restrict the sqlite3 gem in your Gemfile only to the development environment.

Cheers!

Rodrigo Alves Vieira

http://www.rodrigoalvesvieira.com
http://twitter.com/rodrigoalvieira

if using Rails 3.1 add
gem 'pg', :group => :production
gem 'pg', :group => [:development, :test]
into gemfile

Having the same issue. I've installed pg and appended my Gemfile.

How do you restrict the sqlite3 gem to only the dev environment?

inside gemfile

gem 'sqlite3', :group => [:development, :test]
gem 'pg', :group => [:production]