RoR deployment for Heroku and Sqlite3 not performed

I found several posts on the same issue ( here ) and thought I made the right changes, but I still can’t solve the problem.

After completing the installation of the package, I click on the hero, I get the following error when it reaches the sqlite3 installation.

Installing sqlite3 (1.3.5) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/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 *** 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_13nbwv3kitbub/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5 for inspection. Results logged to /tmp/build_13nbwv3kitbub/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out An error occured while installing sqlite3 (1.3.5), and Bundler cannot continue. Make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling. ! ! Failed to install gems via Bundler. ! ! Heroku push rejected, failed to compile Ruby/rails app To git@heroku.com :morning-dawn-1372.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to ' git@heroku.com :morning-dawn-1372.git' 

My gemfile looks like this:

 source 'https://rubygems.org' gem 'rails', '3.2.2' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' gem 'json' group :development, :test do gem 'sqlite3-ruby', :require => 'sqlite3' gem 'sqlite3', '1.3.5' end # Gems used only for assets and not required # in production environments by default. group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer' gem 'uglifier', '>= 1.0.3' end gem 'jquery-rails' group :production do gem 'pg', '0.12.2' end # To use ActiveModel has_secure_password # gem 'bcrypt-ruby', '~> 3.0.0' # To use Jbuilder templates for JSON # gem 'jbuilder' # Use unicorn as the app server # gem 'unicorn' # Deploy with Capistrano # gem 'capistrano' # To use debugger # gem 'ruby-debug' 

it looks like i have both

 Using sqlite3 (1.3.5) Using sqlite3-ruby (1.3.3) 

on my system. Not sure if this is a creative issue, but explains why I excluded both in the gemfile.

Environmental Information:

 $ ruby -v ruby 1.8.7 (2012-02-08 patchlevel 358) [i386-cygwin] $ rails -v Rails 3.2.2 
+7
source share
3 answers

Run the bundle command and then make sure that both Gemfile and Gemfile.lock are checked in the repo before clicking on Heroku.

+12
source

You will also get this error if sqlite is specified in your Gemfile without a group - for example

 gem 'rails', '3.2.13' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' # below is the line that giving you trouble gem "sqlite3", "~> 1.3.7" 

Heroku does not allow you to create sqlite, so you must either delete this row or change it to something like

 ... group :development, :test do gem "sqlite3", "~> 1.3.7", :require => "sqlite3" end 

then do bundle install , then git add and git commit your changes to Gemfile and Gemfile.lock.

After you have done this, your git push heroku master should work.

+1
source

Try the following:

  • Open Gemfile.lock and scroll down to sqlite3 (1.3.x) under "specs:"
  • Make sure it only appears as sqlite3 (1.3.x) without additional jazz.
  • If additional tags appear, such as "-x86-mingw32", delete it.
  • Run batch package.
  • Then try clicking the Heroku wizard.

Worked for me.

Edit

Now that I know better, never change Gemfile.lock manually. This was written when I started coding in Rails on Windows. Try updating a specific stone or blocking it to a version in the Gemfile.

+1
source

All Articles