0

When I run rake:db migrate from my rails app, I get this output:

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?

/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `initialize'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `new'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `connect'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:568:in `initialize'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `new'
 /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:435:in `new_connection'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:445:in `checkout_new_connection'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `acquire_connection'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:351:in `block in checkout'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:350:in `checkout'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `block in connection'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:541:in `retrieve_connection'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/connection_handling.rb:87:in `connection'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/migration.rb:910:in `initialize'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/migration.rb:807:in `new'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/migration.rb:807:in `up'
 /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/migration.rb:785:in `migrate'
/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.4/lib/active_record/railties/databases.rake:34:in `block (2 levels) in <top (required)>'
/home/ubuntu/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `eval'
/home/ubuntu/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `<main>'

In my gemfile I have

gem 'pg'

and in my database.yml I have

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  <<: *default
  database: fake_lunch_hub_development

test:
  <<: *default
  database: fake_lunch_hub_test


production:
  <<: *default
  database: fake_lunch_hub_production
  username: fake_lunch_hub
  password: <%= ENV['FAKE_LUNCH_HUB_DATABASE_PASSWORD'] %>

This setup used to connect to the database perfectly, but I did a lot of refactoring and renaming (the project is no longer called fake_lunch_hub) and I moved the project off of my local machine (mac) and onto an amazon EC2 instance (ubuntu).

There are many other questions on Stackoverflow that offer solutions using psql, but when I run the command

psql

I get this:

The program 'psql' can be found in the following packages:
* postgresql-client-common
* postgres-xc-client
Try: sudo apt-get install <selected package>

I'd rather not download a new postgres package because I already have it successfully downloaded from the gem.

How can I get that server started and accepting connections?

EDIT:

FULL SOLUTION:

sudo apt-get install postgres
sudo su
su postgres
createuser ubuntu
createuser fake_lunch_hub
createdb fake_lunch_hub
exit
exit
rails server

resolves the issues

0

1 Answer 1

7

The gem is just a way for Ruby/Rails to talk to a Postgres server. The gem itself does not contain its own server.

You'll still need to install one:

sudo apt-get install postgresql  
Sign up to request clarification or add additional context in comments.

2 Comments

Thanks! New problem, role 'ubuntu' does not exist. Always a nice feeling to move on to a new problem!
@johncorser Probably something like sudo su postgres -c "createuser ubuntu"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.