How to enable Postgresql password-less authentication on Ubuntu for Rails local development

Fire up your console and create a Postgres user (aka role) named rails:

ಠ_ಠ sudo -u postgres psql
psql (9.3.4)
Type "help" for help.

postgres=# CREATE ROLE rails LOGIN
postgres-#   CREATEDB
postgres-#    VALID UNTIL 'infinity';

Then make sure your Postgres configuration uses the trust authentication.

First, locate the config file. Its path is usually /etc/postgresql/VERSION/main/pg_hba.conf.

Edit it as the superuser:

sudo vim /etc/postgresql/9.3/main/pg_hba.conf

or in a version independent way:

sudo vim /etc/postgresql/$(/etc/postgresql/ | grep -E "[0-9]+\.[0-9]+" | sort | tail -n 1)/main_pg_hba.conf

(I know, this one is a bit messy ^_^‘..)

And then, change the occurrences of peer and md5 to trust, like so:

# Database administrative login by Unix domain socket
local all postgres trust

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust

Save the file and restart the service:

ಠ_ಠ sudo service postgresql restart

Then edit the config/database.yml of your Rails application:

development:
  adapter: postgresql
  encoding: unicode
  database: MYAPPNAME_development
  host: localhost
  pool: 5
  username: rails

test:
  adapter: postgresql
  encoding: unicode
  database: MYAPPNAME_test
  pool: 5
  username: rails
  host: localhost

You can now perform all the database specific tasks:

ಠ_ಠ bundle exec rake db:migrate
ಠ_ಠ bundle exec rails server
# and so on..
 
8
Kudos
 
8
Kudos

Now read this

Perché siamo favorevoli al matrimonio tra cattolici

Siamo completamente favorevoli al matrimonio tra cattolici. Ci pare un errore e un’ingiustizia cercare di impedirlo. Il cattolicesimo non è una malattia. I cattolici, nonostante a molti non piacciano o possano sembrare strani, sono... Continue →