27

I run commands

heroku create --stack cedar
git push heroku master

but it gave me an error:

> Counting objects: 144, done. Delta compression using up to 2 threads.
> Compressing objects: 100% (128/128), done. Writing objects: 100%
> (144/144), 50.16 KiB, done. Total 144 (delta 23), reused 0 (delta 0)
> 
> -----> Heroku receiving push
> -----> Ruby/Rails app detected
> -----> Installing dependencies using Bundler version 1.1.rc
>        Running: bundle install --without development:test --path vendor/bundle --deployment
>        Fetching gem metadata from http://rubygems.org/.......
>        Installing rake (0.9.2.2)
>        Installing multi_json (1.0.3)
>        Installing activesupport (3.1.1)
>        Installing builder (3.0.0)
>        Installing i18n (0.6.0)
>        Installing activemodel (3.1.1)
>        Installing erubis (2.7.0)
>        Installing rack (1.3.5)
>        Installing rack-cache (1.1)
>        Installing rack-mount (0.8.3)
>        Installing rack-test (0.6.1)
>        Installing hike (1.2.1)
>        Installing tilt (1.3.3)
>        Installing sprockets (2.0.3)
>        Installing actionpack (3.1.1)
>        Installing mime-types (1.17.2)
>        Installing polyglot (0.3.2)
>        Installing treetop (1.4.10)
>        Installing mail (2.3.0)
>        Installing actionmailer (3.1.1)
>        Installing arel (2.2.1)
>        Installing tzinfo (0.3.30)
>        Installing activerecord (3.1.1)
>        Installing activeresource (3.1.1)
>        Installing coffee-script-source (1.1.2)
>        Installing execjs (1.2.9)
>        Installing coffee-script (2.2.0)
>        Installing rack-ssl (1.3.2)
>        Installing json (1.6.1) with native extensions
>        Installing rdoc (3.11)
>        Installing thor (0.14.6)
>        Installing railties (3.1.1)
>        Installing coffee-rails (3.1.1)
>        Installing jquery-rails (1.0.16)
>        Installing pg (0.11.0) with native extensions
>        Using bundler (1.1.rc)
>        Installing rails (3.1.1)
>        Installing sass (3.1.10)
>        Installing sass-rails (3.1.4)
>        **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_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.4
> for inspection.
>        Results logged to /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.4/ext/sqlite3/gem_make.out
>        from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:486:in `block in build_extensions'
>        from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:446:in `each'
>        from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:446:in `build_extensions'
>        from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:198:in `install'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/source.rb:90:in
> `block in install'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/rubygems_integration.rb:78:in
> `preserve_paths'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/source.rb:89:in
> `install'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:73:in
> `block in install_gem_from_spec'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/rubygems_integration.rb:93:in
> `with_build_args'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:72:in
> `install_gem_from_spec'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:56:in
> `block in run'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:55:in
> `run'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:12:in
> `install'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/cli.rb:219:in
> `install'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/vendor/thor/task.rb:22:in
> `run'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/vendor/thor.rb:263:in
> `dispatch'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/vendor/thor/base.rb:386:in
> `start'
>        from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/bin/bundle:13:in
> `<top (required)>'
>        from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `load'
>        from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `<main>'  !  !     Failed to install gems via Bundler.  !  !     Heroku push rejected,
> failed to compile Ruby/rails app
> 
> To git@heroku.com:falling-ice-5948.git  ! [remote rejected] master ->
> master (pre-receive hook declined) error: failed to push some refs to
> 'git@heroku.com:falling-ice-5948.git'

EDIT - This post could be really helpful: sqlite3-ruby install error

Community
  • 1
  • 1
ruhungry
  • 4,506
  • 20
  • 54
  • 98

7 Answers7

60

Add this to your Gemfile,

group :production do
  gem 'pg'
end
group :development, :test do
  gem 'sqlite3'
end

then do a bundle then repush to heroku. You cannot use sqlite3 on Heroku - which is the cause of the error.

John Beynon
  • 37,398
  • 8
  • 88
  • 97
  • Thanks, but I've got still the same problem. My app doesn't work when in config/application.rb file is config.assets..enabled = true, when I change it to false it works, but doesn't use my .css file. What should I do ? Maybe exis special array when I have to add my css files? – ruhungry Nov 01 '11 at 10:15
  • This also did not solve my problem. – Mike Jan 03 '12 at 03:32
  • 1
    My answer is the solution for the error posted in the original posters question in regards to sqlite3 failing to install. Further problems should be opened as new questions. – John Beynon Jan 03 '12 at 08:41
41

If you're still having the problem after removing sqlite3 from the Gemfile (or making it development-only) is that you haven't re-updated the file in the eyes of Heroku because it relies on Git.

Quite simply:

git add Gemfile
git commit -m "Removed sqlite3 from Gemfile"
git push heroku master

I bashed my head against this for a while before realizing that the changes weren't "taking" because I hadn't actually committed them to Heroku.

tibbon
  • 1,018
  • 2
  • 16
  • 30
13

This is what worked for me after a day of trying every fix prescribed in the numerous forums! First of all if you are using the Rails Tutorial book or online you need to move to the second version (there is a beta version online at http://ruby.railstutorial.org/).

Open up your editor and add in the lines to your Gemfile:

group :production do    
    gem 'pg', '0.12.2'  
end  
group :development do  
    gem 'sqlite3', '1.3.4'  
end

Now you also need to commit your new edited Gemfile to Heroku so the next steps are in order.

git add Gemfile  
git commit -m "Put Sqlite3 into development in the Gemfile"  
git push heroku master  
animuson
  • 53,861
  • 28
  • 137
  • 147
Rubygirl
  • 165
  • 2
  • 10
4

If it is still not working for you after applying tibbon and animuson's instructions (happened to me), try comment off the "gem 'sqlite3'" line in Gemfile, then add-commit-push again.

  • to expound just a bit... you don't want to have any "conflicts" in your gemfile, i.e. remove or comment out the "original" `gem sqlite3` at the top of your gemfile (inserted when originally creating your app/scaffold). This `gem sqlite3` line conflicts or overrides the conditional statement in the above answer. And, if that's not enough of a problem, you would have version conflicts with `gem sqlite3` vs. `gem 'sqlite3', '1.3.4'` – Flak DiNenno Dec 24 '12 at 08:54
0

I followed these instructions, but in my case I had to add the updated Gemfile.lock file to version control. So, I used the flag -a for "all" to add both the Gemfile file and the Gemfile.lock file.

git commit -am "Put Sqlite3 into development in the Gemfile and added the updated Gemfile.lock"
git push heroku master

Laurent Jacquot
  • 591
  • 5
  • 7
0

There is a slightly different syntax you can use to solve this problem:

gem 'pg', group: :production
gem 'sqlite3', group: :development 
German
  • 496
  • 1
  • 4
  • 10
0

If you have a reference to:

# Use sqlite3 as the database for Active Record gem 'sqlite3'

in your Gemfile, make sure to comment this out or replace it with the code suggested above. Otherwise if this remains, you'll still be running into the same error.

Damir Kotoric
  • 901
  • 6
  • 8