PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgresql:FATAL:Rolle existiert nicht

Beim Einrichten einer neuen Rails-Anwendung mit Postgresql bin ich auf ähnliche Probleme gestoßen. Ich habe die folgenden Fehlermeldungen unten erhalten

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

Um dies zu lösen, folgen Sie einfach der Lösung unten

Zuerst müssen wir uns über die Befehlszeilenschnittstelle beim Postgres-Benutzerkonto anmelden;

sudo su - postgres

Stellen Sie als Nächstes mithilfe des psql-Clients als Postgres-Rolle eine Verbindung zum Datenbankserver her:

psql -U postgres

Willkommen bei psql 10.6, dem interaktiven PostgreSQL-Terminal.

[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help

postgres=#

Als Nächstes erstellen wir in Verbindung mit dem psql-Client eine Rolle mit unserem gewünschten Rollennamen die das LOGIN-Attribut und unser gewünschtes Passwort enthält , und die Datenbanken erstellen und Rollen verwalten kann (Achtung: Bitte geben Sie dieses postgres=# nicht ein , da es sich um einen Platzhalter handelt):

postgres=# create role rolename with createdb login password 'password1';

Beachten Sie das erforderliche abschließende Semikolon (; ) am Ende der SQL-Anweisung. Die einfachen Anführungszeichen (‘‘) sind nicht Teil des Passworts, müssen es aber einschließen.

Hat es funktioniert? Sie können dies mit dem \du-Befehl überprüfen (N/B: Bitte geben Sie dieses postgres=# nicht ein , da es sich um einen Platzhalter handelt):

postgres=# \du

Sie können jetzt den Befehl ausführen, um die Datenbank für Ihre Rails-Anwendung zu erstellen;

rails db:create

Führen Sie dann auch den Befehl aus, um die Datenbank für Ihre Rails-Anwendung zu migrieren;

rails db:migrate

Das ist alles.

Ich hoffe, das hilft