Vedi git gist con le istruzioni qui
Esegui questo:
sudo -u postgres psql
O
psql -U postgres
nel tuo terminale per entrare in postgres
NB: se sei su un Mac ed entrambi i comandi sopra non sono riusciti, vai alla sezione sul Mac di seguito
postgres=
Correre
CREATE USER new_username;
Nota: sostituisci new_username con l'utente che desideri creare, nel tuo caso sarà tom.
postgres=
CREATE ROLE
Dal momento che desideri che quell'utente possa creare un DB, devi modificare il ruolo in superutente
postgres=
ALTER ROLE
Per confermare, tutto è andato a buon fine,
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=
Aggiornamento / modifica (per Mac):
Recentemente ho riscontrato un errore simile sul mio Mac:
psql: FATAL: role "postgres" does not exist
Questo perché la mia installazione è stata configurata con un superutente del database il cui nome del ruolo è lo stesso del tuo nome di accesso (breve).
Ma alcuni script di Linux presumono che il superutente abbia il nome del ruolo tradizionale di postgres
Come ho risolto questo problema?
Se hai installato con homebrew
run:
/usr/local/opt/postgres/bin/createuser -s postgres
Se stai utilizzando una versione specifica di postgres, dì 10.5
quindi esegui:
/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
Se hai installato con postgres.app
per Mac, esegui:
/Applications/Postgres.app/Contents/Versions/10.5/bin/createuser -s postgres
PS: sostituisci la 10.5 con la tua versione di PostgreSQL