Veja git gist com instruções aqui
Rode isto:
sudo -u postgres psql
OU
psql -U postgres
no seu terminal para entrar no postgres
NB: se você estiver em um Mac e ambos os comandos acima falharem, vá para a seção sobre Mac abaixo
postgres=#
Corre
CREATE USER new_username;
Nota: Substitua new_username pelo usuário que você deseja criar, no seu caso será tom.
postgres=# CREATE USER new_username;
CREATE ROLE
Já que você deseja que o usuário seja capaz de criar um banco de dados, você precisa alterar a função para superusuário
postgres=# ALTER USER new_username SUPERUSER CREATEDB;
ALTER ROLE
Para confirmar, tudo deu certo,
postgres=# \du
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=#
Atualização / modificação (para Mac):
Recentemente, encontrei um erro semelhante no meu Mac:
psql: FATAL: role "postgres" does not exist
Isso ocorreu porque minha instalação foi configurada com um superusuário do banco de dados cujo nome de função é igual ao seu nome de login (abreviado).
Mas alguns scripts do Linux assumem que o superusuário tem o nome de função tradicional de postgres
Como resolvi isso?
Se você instalou com homebrew
run:
/usr/local/opt/postgres/bin/createuser -s postgres
Se você estiver usando uma versão específica do postgres, diga 10.5
e execute:
/usr/local/Cellar/postgresql/10.5/bin/createuser -s postgres
OU:
/usr/local/Cellar/postgresql/10.5/bin/createuser -s new_username
OU:
/usr/local/opt/postgresql@11/bin/createuser -s postgres
Se você instalou com postgres.app
para Mac, execute:
/Applications/Postgres.app/Contents/Versions/10.5/bin/createuser -s postgres
PS: substitua 10.5 pela sua versão PostgreSQL