PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgresql:FATAL:il ruolo non esiste

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