Después de perder dos mañana intentando configurarme el postgres para poder usarlo desde Rails,  encontrarme con fallos y la solución atravesarse un poco, pues cuento cómo se ha solucionado y si alguien se ahorra el tiempo pues mejor que mejor.
Básicamente he seguido esta guÃa para la instalación y configuración en Ubuntu
Primero hay que instalarse el postgres en Ubuntu
sudo apt-get install postgresql
En mi caso me he saltado la parte relacionada con la configuración de PostgreSQL para permitir conexiones vÃa TCP/IP, asà que paso directamente a crear un usuario.
Crear usuario
Vamos a la terminal y escribimos
$sudo -u postgres createuser
Enter name of role to add: USUARIO
Shall the new role be a superuser? (y/n) y
CREATE ROLE
Después creamos la base de datos de PostgreSQL
Usamos el comando createdb para crear la base de datos
$sudo -u postgres createdb NOMBRE_BASE_DE_DATOS
CREATE DATABASE
Damos permisos al usuario para acceder a la base de datos
Por último, vamos a ponerle contraseña al usuario de postgres y darle los permisos
$sudo -u postgres psql
postgres=# alter user USUARIO with encrypted password ‘password’;
ALTER ROLE
postgres=# grant all privileges on database NOMBRE_BASE_DE_DATOS to USUARIO;
GRANT
Ahora vamos a instalar el cliente de postgresql
$sudo apt-get install postgresql-client
Ahora vamos a comprobar que todo ha ido bien y te puedes conectar a tu base de datos con el usuario definido
psql -h localhost
Hasta ahà todo iba bien, pero luego me iba a mi aplicación rails, hacÃa
$rake db:migrate
y me devolvÃa el siguiente error
FATAL: Peer authentication failed for user XXXX
Asà que después de volverme un poco loca, porque no conseguÃa resolverlo y pese a que en varios post ponÃan aproximaciones a la solución, pues no era completo (o al menos no lo entendÃa asÃ)
Editamos el fichero /etc/postgresql/9.1/main/pg_hba.conf
Y cambiamos todas las referencias a “peer” por “md5”, en las lÃneas que no están comentadas en el fichero, de manera que el fichero de configuración debe quedar de la siguiente manera:
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by Unix domain socket
#local all postgres peer
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# “local” is for Unix domain socket connections only
#local all all peer
local all all md5
# IPv4 local connections:
#host all all 127.0.0.1/32 md5
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
(END)
Luego reiniciamos el postgres
$sudo /etc/init.d/postgresql restart
Y ya deberÃa estar todo preparado y funcionando para crear tus migraciones en la aplicación rails 🙂