I am new to rails and heroku i tried the following code to push my app to heroku
rails new snippets
cd snippets
git init
git add .
git commit -m "initial commit"
wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh
heroku create
git push heroku master
but i get the following error
An error occurred while installing sqlite3 (1.3.10), and Bundler cannot
remote: continue.
remote: Make sure that `gem install sqlite3 -v '1.3.10'` 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:
remote: ! Push rejected, failed to compile Ruby app
remote:
remote: Verifying deploy....
remote:
remote: ! Push rejected to powerful-waters-8202.
remote:
To https://git.heroku.com/powerful-waters-8202.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/powerful-waters-8202.git'
i modified my gemfile as::
group :devlopment, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
when i run bundle install i get the following error
Installing pg 0.18.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/home/user/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150705-24664-1i1n8se.rb extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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=/home/user/.rvm/rubies/ruby-2.2.1/bin/$(RUBY_BASE_NAME)
--with-pg
--without-pg
--enable-windows-cross
--disable-windows-cross
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
extconf failed, exit code 1
Gem files will remain installed in /home/user/.rvm/gems/ruby-2.2.1/gems/pg-0.18.2 for inspection.
Results logged to /home/user/.rvm/gems/ruby-2.2.1/extensions/x86_64-linux/2.2.0/pg-0.18.2/gem_make.out
An error occurred while installing pg (0.18.2), and Bundler cannot continue.
Make sure that `gem install pg -v '0.18.2'` succeeds before bundling.
i tried using the command
gem install pg -v '0.18.2'
and now i get the following error
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
here's my database.yml file
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
development:
<<: *default
database: db/development.sqlite3
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
database: db/test.sqlite3
production:
<<: *default
database: db/production.sqlite3
and my gemfile
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.1'
# Use sqlite3 as the database for Active Record
#gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
###################################################################################
group :development, :test do # <<<< :development, not devlopment
gem 'sqlite3'
end
group :production do
gem 'pg'
end
##################################################################
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
end
can anyone help me out with this issue??
As you mentioned Ubuntu 14.04.2 LTS, try the following command
and then
Update:
You should also change the adapter to postgresql for production in your
database.yml
If you're going to continue running SQLite in development, run
That will prevent Bundler from trying to install
pg
, but Heroku will installpg
when you deploy, since they run--without development,test
.If you want to switch to Postgres locally, there's a lot of help around StackOverflow that I won't duplicate here:
You have some good advice here already, but I'll add what I don't see mentioned.
My advice to you is to use the same database in development as you do in production, PostgreSQL . There are a number of reasons this is a good idea and you have just come across one, deployment headaches.
But let's say you stick with the different database types. This line in your gemfile looks strange to me-- "not devlopment"
I think you should try
Let me know how it goes.