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