Vea git gist con instrucciones aquí
Ejecuta esto:
sudo -u postgres psql
O
psql -U postgres
en tu terminal para entrar en postgres
NB: Si está en una Mac y ambos comandos anteriores fallaron, vaya a la sección sobre Mac a continuación
postgres=
correr
CREATE USER new_username;
Nota: Reemplace new_username con el usuario que desea crear, en su caso, será tom.
postgres=
CREATE ROLE
Dado que desea que ese usuario pueda crear una base de datos, debe modificar el rol a superusuario
postgres=
ALTER ROLE
Para confirmar, todo fue exitoso,
postgres=
List of roles
Role name | Attributes | Member of
new_username | Superuser, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication | {}
root | Superuser, Create role, Create DB | {}
postgres=
Actualización / Modificación (para Mac):
Recientemente encontré un error similar en mi Mac:
psql: FATAL: role "postgres" does not exist
Esto se debió a que mi instalación se configuró con un superusuario de base de datos cuyo nombre de función es el mismo que su nombre de inicio de sesión (corto).
Pero algunos scripts de Linux asumen que el superusuario tiene el nombre de rol tradicional de postgres
¿Cómo resolví esto?
Si instaló con homebrew
ejecutar:
/usr/local/opt/postgres/bin/createuser -s postgres
Si está utilizando una versión específica de postgres, diga y 10.5
luego ejecute:
/usr/local/Cellar/postgresql/10.5/bin/createuser -s postgres
O:
/usr/local/Cellar/postgresql/10.5/bin/createuser -s new_username
O:
/usr/local/opt/postgresql@11/bin/createuser -s postgres
Si instaló con postgres.app
para Mac, ejecute:
/Applications/Postgres.app/Contents/Versions/10.5/bin/createuser -s postgres
PD: reemplace 10.5 con su versión de PostgreSQL