Voir le gist git avec les instructions ici
Fais ça :
sudo -u postgres psql
OU
psql -U postgres
dans votre terminal pour accéder à postgres
NB : Si vous êtes sur un Mac et que les deux commandes ci-dessus ont échoué, passez à la section sur le Mac ci-dessous.
postgres=#
Exécuter
CREATE USER new_username;
Note : Remplacez new_username par l'utilisateur que vous voulez créer, dans votre cas ce sera tom.
postgres=# CREATE USER new_username;
CREATE ROLE
Puisque vous voulez que cet utilisateur puisse créer une base de données, vous devez modifier le rôle en superutilisateur.
postgres=# ALTER USER new_username SUPERUSER CREATEDB;
ALTER ROLE
Pour confirmer, tout s'est bien passé,
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=#
Mise à jour/modification (pour Mac) :
J'ai récemment rencontré une erreur similaire sur mon Mac :
psql: FATAL: role "postgres" does not exist
En effet, mon installation était configurée avec un superutilisateur de la base de données dont le nom de rôle est le même que votre nom de connexion (court).
Mais certains scripts linux supposent que le superutilisateur a le nom de rôle traditionnel de postgres
Comment ai-je résolu ce problème ?
Si vous avez installé avec homebrew
courir :
/usr/local/opt/postgres/bin/createuser -s postgres
Si vous utilisez une version spécifique de postgres, par exemple 10.5
puis courir :
/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
Si vous avez installé avec postgres.app
pour l'exécution de Mac :
/Applications/Postgres.app/Contents/Versions/10.5/bin/createuser -s postgres
P.S : remplacez 10.5 par votre version de PostgreSQL