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 Issues · rubygems/bundler · GitHub 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://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]