Ho riscontrato problemi simili durante l'impostazione di una nuova applicazione Rails con Postgresql. Ho ricevuto i seguenti messaggi di errore di seguito
FATAL: role "promisepreston" does not exist
Couldn't create 'MyBlog_development' database. Please check your configuration.
rails aborted!
ActiveRecord::NoDatabaseError: FATAL: role
Caused by:
PG::ConnectionBad: FATAL: role "promisepreston" does not exist
Per risolverlo, segui semplicemente la soluzione di seguito
Innanzitutto, dobbiamo accedere all'account utente postgres tramite l'interfaccia a riga di comando;
sudo su - postgres
Quindi, connettiti al server del database usando il client psql, come ruolo postgres:
psql -U postgres
Benvenuto in psql 10.6, il terminale interattivo di PostgreSQL.
[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help
postgres=#
Successivamente, connesso al client psql, creeremo un ruolo con il nome ruolo desiderato che ha l'attributo LOGIN e la nostra password desiderata e che possono creare database e gestire ruoli (N/B: Per favore non digitare questo postgres=# , poiché è un segnaposto):
postgres=# create role rolename with createdb login password 'password1';
Prendere nota del punto e virgola finale richiesto (; ) alla fine dell'istruzione SQL. Le virgolette singole ( ‘ ‘ ) non fanno parte della password, ma devono racchiuderla.
Ha funzionato? Puoi controllare usando il comando \du (N/B: Per favore non digitare questo postgres=# , poiché è un segnaposto):
postgres=# \du
Ora puoi eseguire il comando per creare il database per la tua applicazione Rails;
rails db:create
E poi esegui anche il comando per migrare il database per la tua applicazione Rails;
rails db:migrate
Questo è tutto.
Spero che questo aiuti