0

I updated my database.yml to add this

development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: postgresql
  database: treebook
  pool: 5
  timeout: 5000

I also updated my gem file adding these blocks and gem'pg'

group :development do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end

Ran 'gem install bundler'

Then was desperate and even tried another iteration after getting rid of sqlite and only using pg, but that didn’t work either.

All of this and I still am unable to deploy… notes from the terminal (below):

$ git push heroku master
Counting objects: 180, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (169/169), done.
Writing objects: 100% (180/180), 38.52 MiB | 587.00 KiB/s, done.
Total 180 (delta 16), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.2.4
remote: -----> Installing dependencies using bundler 1.11.2
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote:        Warning: the running version of Bundler is older than the version that created the lockfile. We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote:        Fetching gem metadata from https://rubygems.org/...........
remote:        Fetching version metadata from https://rubygems.org/...
remote:        Fetching dependency metadata from https://rubygems.org/..
remote:        Installing json 1.8.3 with native extensions
remote:        Installing i18n 0.7.0
remote:        Installing rake 11.2.2
remote:        Installing minitest 5.9.0
remote:        Installing thread_safe 0.3.5
remote:        Installing builder 3.2.2
remote:        Installing erubis 2.7.0
remote:        Installing mini_portile2 2.1.0
remote:        Installing pkg-config 1.1.7
remote:        Installing rack 1.6.4
remote:        Installing mime-types-data 3.2016.0521
remote:        Installing arel 6.0.3
remote:        Installing coffee-script-source 1.10.0
remote:        Installing execjs 2.7.0
remote:        Installing thor 0.19.1
remote:        Using bundler 1.11.2
remote:        Installing concurrent-ruby 1.0.2
remote:        Installing multi_json 1.12.1
remote:        Installing sass 3.4.22
remote:        Installing tilt 2.0.5
remote:        Installing sqlite3 1.3.11 with native extensions
remote:        Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
remote:        /tmp/build_4e6586368c7df1ddb844833429e54761/vendor/ruby-2.2.4/bin/ruby -r ./siteconf20160729-222-1rjile5.rb extconf.rb
remote:        checking for sqlite3.h... no
remote:        sqlite3.h is missing. Try 'port install sqlite3 +universal',
remote:        'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
remote:        and check your shared library search path (the
remote:        location where your sqlite3 shared library is located).
remote:        *** extconf.rb failed ***
remote:        Could not create Makefile due to some reason, probably lack of necessary
remote:        libraries and/or headers.  Check the mkmf.log file for more details.  You may
remote:        need configuration options.
remote:        Provided configuration options:
remote:        --with-opt-dir
remote:        --without-opt-dir
remote:        --with-opt-include
remote:        --without-opt-include=${opt-dir}/include
remote:        --with-opt-lib
remote:        --without-opt-lib=${opt-dir}/lib
remote:        --with-make-prog
remote:        --without-make-prog
remote:        --srcdir=.
remote:        --curdir
remote:        --ruby=/tmp/build_4e6586368c7df1ddb844833429e54761/vendor/ruby-2.2.4/bin/$(RUBY_BASE_NAME)
remote:        --with-sqlite3-dir
remote:        --without-sqlite3-dir
remote:        --with-sqlite3-include
remote:        --without-sqlite3-include=${sqlite3-dir}/include
remote:        --with-sqlite3-lib
remote:        --without-sqlite3-lib=${sqlite3-dir}/lib
remote:        extconf failed, exit code 1
remote:        Gem files will remain installed in /tmp/build_4e6586368c7df1ddb844833429e54761/vendor/bundle/ruby/2.2.0/gems/sqlite3-1.3.11 for inspection.
remote:        Results logged to /tmp/build_4e6586368c7df1ddb844833429e54761/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/sqlite3-1.3.11/gem_make.out
remote:        Installing turbolinks-source 5.0.0
remote:        Installing tzinfo 1.2.2
remote:        Installing mime-types 3.1
remote:        Installing rdoc 4.2.2
remote:        Installing nokogiri 1.6.8 with native extensions
remote:        Installing rack-test 0.6.3
remote:        Installing coffee-script 2.4.1
remote:        Installing uglifier 3.0.0
remote:        Installing sprockets 3.6.2
remote:        An error occurred while installing sqlite3 (1.3.11), and Bundler cannot
remote:        continue.
remote:        Make sure that `gem install sqlite3 -v '1.3.11'` succeeds before bundling.
remote:        Bundler Output: Warning: the running version of Bundler is older than the version that created the lockfile. We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote:        Fetching gem metadata from https://rubygems.org/...........
remote:        Fetching version metadata from https://rubygems.org/...
remote:        Fetching dependency metadata from https://rubygems.org/..
remote:        Installing json 1.8.3 with native extensions
remote:        Installing i18n 0.7.0
remote:        Installing rake 11.2.2
remote:        Installing minitest 5.9.0
remote:        Installing thread_safe 0.3.5
remote:        Installing builder 3.2.2
remote:        Installing erubis 2.7.0
remote:        Installing mini_portile2 2.1.0
remote:        Installing pkg-config 1.1.7
remote:        Installing rack 1.6.4
remote:        Installing mime-types-data 3.2016.0521
remote:        Installing arel 6.0.3
remote:        Installing coffee-script-source 1.10.0
remote:        Installing execjs 2.7.0
remote:        Installing thor 0.19.1
remote:        Using bundler 1.11.2
remote:        Installing concurrent-ruby 1.0.2
remote:        Installing multi_json 1.12.1
remote:        Installing sass 3.4.22
remote:        Installing tilt 2.0.5
remote:        Installing sqlite3 1.3.11 with native extensions
remote:        
remote:        Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
remote:        
remote:        /tmp/build_4e6586368c7df1ddb844833429e54761/vendor/ruby-2.2.4/bin/ruby -r ./siteconf20160729-222-1rjile5.rb extconf.rb
remote:        checking for sqlite3.h... no
remote:        sqlite3.h is missing. Try 'port install sqlite3 +universal',
remote:        'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
remote:        and check your shared library search path (the
remote:        location where your sqlite3 shared library is located).
remote:        *** extconf.rb failed ***
remote:        Could not create Makefile due to some reason, probably lack of necessary
remote:        libraries and/or headers.  Check the mkmf.log file for more details.  You may
remote:        need configuration options.
remote:        
remote:        Provided configuration options:
remote:        --with-opt-dir
remote:        --without-opt-dir
remote:        --with-opt-include
remote:        --without-opt-include=${opt-dir}/include
remote:        --with-opt-lib
remote:        --without-opt-lib=${opt-dir}/lib
remote:        --with-make-prog
remote:        --without-make-prog
remote:        --srcdir=.
remote:        --curdir
remote:        --ruby=/tmp/build_4e6586368c7df1ddb844833429e54761/vendor/ruby-2.2.4/bin/$(RUBY_BASE_NAME)
remote:        --with-sqlite3-dir
remote:        --without-sqlite3-dir
remote:        --with-sqlite3-include
remote:        --without-sqlite3-include=${sqlite3-dir}/include
remote:        --with-sqlite3-lib
remote:        --without-sqlite3-lib=${sqlite3-dir}/lib
remote:        
remote:        extconf failed, exit code 1
remote:        
remote:        Gem files will remain installed in /tmp/build_4e6586368c7df1ddb844833429e54761/vendor/bundle/ruby/2.2.0/gems/sqlite3-1.3.11 for inspection.
remote:        Results logged to /tmp/build_4e6586368c7df1ddb844833429e54761/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/sqlite3-1.3.11/gem_make.out
remote:        Installing turbolinks-source 5.0.0
remote:        Installing tzinfo 1.2.2
remote:        Installing mime-types 3.1
remote:        Installing rdoc 4.2.2
remote:        Installing nokogiri 1.6.8 with native extensions
remote:        Installing rack-test 0.6.3
remote:        Installing coffee-script 2.4.1
remote:        Installing uglifier 3.0.0
remote:        Installing sprockets 3.6.2
remote:        An error occurred while installing sqlite3 (1.3.11), and Bundler cannot
remote:        continue.
remote:        Make sure that `gem install sqlite3 -v '1.3.11'` succeeds before bundling.
remote:  !
remote:  !     Failed to install gems via Bundler.
remote:  !     
remote:  !     Detected sqlite3 gem which is not supported on Heroku.
remote:  !     https://devcenter.heroku.com/articles/sqlite3
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !       Push rejected to fast-meadow-50982.
remote: 
To https://git.heroku.com/fast-meadow-50982.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/fast-meadow-50982.git'
Aleksey
  • 2,289
  • 17
  • 27
  • I would strongly recommend that you install PostgreSQL in your development environment if you're going to deploy on PostgreSQL. Your development, testing, and production environments should use the same stack, no ORM will protect your from database differences. – mu is too short Jul 29 '16 at 22:42

1 Answers1

0

You should do bundle install locally, commit and then push to Heroku.
gem install bundler does not install any dependencies from Gemfile.
It just installs bundler itself.

Have you read this?

Community
  • 1
  • 1
Aleksey
  • 2,289
  • 17
  • 27
  • So, I followed the advice you listed and linked (thank you, btw!), but now it's throwing a different error: "No default language could be detected for this app" I used this command, in the terminal heroku create --buildpack https://github.com/heroku/heroku- buildpack-ruby.git But it still continues to throw the same error code... – Aaron Tamaddon Jul 30 '16 at 00:59
  • Did the buildpack was actually set? You can see it by running `heroku buildpack`. Please note that actual documentation [says](https://devcenter.heroku.com/articles/buildpacks#setting-a-buildpack-on-an-application) that you need run `heroku buildpacks:set some-buildpack-name` in order to set buildpack for an existing application. – Aleksey Jul 30 '16 at 05:53
  • The buildpack said it set, but I re-established it anyways, using the command you providedx though for some reason, it's still leaving me with "Failed to detect set buildpack...detection failure" :/ thanks for sticking through this with me, Aleksey – Aaron Tamaddon Jul 30 '16 at 17:54
  • You should create new answer if you need more help. – Aleksey Jul 31 '16 at 18:00
  • So, as silly as it is, I'm kicking myself because I failed to realize that I have a .php file to handle my mail-service, so I needed to add two buildpacks (ruby and php both). After clearing my buildpack and then resetting it with those two, I was able to deploy – Aaron Tamaddon Aug 01 '16 at 20:51