Reputation: 3566
I deploy Rails 5 with PostgreSQL to free app in Heroku. This is my configuration from database.yml
:
production:
adapter: postgresql
username: root
password:
database: example
When I run heroku run rake db:migrate
, I see this error:
rake aborted! PG::ConnectionBad: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
If I add this line to database.yml
:
host: localhost
and run migration again, I see this error:
rake aborted! PG::ConnectionBad: could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?
How to fix it ?
Upvotes: 2
Views: 4829
Reputation: 21
After delete old DB, you should execute this
heroku pg:promote HEROKU_POSTGRESQL_NEW_DATABASE
You can check your DB nickname by
heroku pg:info
Upvotes: 1
Reputation: 392
Follow some steps in serial order,
$ heroku login
In Gemfile, add the pg gem to your Rails project. Change:
gem sqlite
to
gem 'sqlite3', group: :development
gem 'pg', '0.18.1', group: :production
In Gemfile, add the rails_12factor gem::
gem 'rails_12factor', group: :production
$ bundle install
Ensure config/database.yml is using the postgresql adapter. Change:
production:
<<: *default
database: db/production.sqlite3
to
production:
<<: *default
adapter: postgresql
database: db/production.sqlite3
$ git add .
$ git commit -m "Heroku config"
$ heroku create
$ git push heroku master
$ heroku run rake db:migrate
SO FOLLOW STEP 5 correctly.
Upvotes: 0
Reputation: 2747
It seems like database is not provided for your app, you need to add one:
heroku addons:create heroku-postgresql
You can verify the database was added to your application by running:
heroku config --app your_app_name
Upvotes: 21