Ik kwam soortgelijke problemen tegen bij het instellen van een nieuwe Rails-toepassing met Postgresql. Ik krijg de volgende foutmeldingen hieronder
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
Volg de onderstaande oplossing om dit op te lossen
Eerst moeten we inloggen op het postgres-gebruikersaccount via de opdrachtregelinterface;
sudo su - postgres
Maak vervolgens verbinding met de databaseserver met behulp van de psql-client, als de rol van postgres:
psql -U postgres
Welkom bij psql 10.6, de interactieve PostgreSQL-terminal.
[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help
postgres=#
Vervolgens zullen we, verbonden met de psql-client, een rol maken met onze gewenste rolnaam dat het LOGIN attribuut en ons gewenste wachtwoord . heeft , en dat databases kan maken en rollen kan beheren (N/B: Typ dit niet postgres=# , aangezien het een tijdelijke aanduiding is):
postgres=# create role rolename with createdb login password 'password1';
Let op de vereiste volgpuntkomma (; ) aan het einde van de SQL-instructie. De enkele aanhalingstekens ( ‘ ‘ ) maken geen deel uit van het wachtwoord, maar moeten het omsluiten.
Werkte het? U kunt controleren met het commando \du (N/B: Typ dit niet postgres=# , aangezien het een tijdelijke aanduiding is):
postgres=# \du
U kunt nu de opdracht uitvoeren om de database voor uw Rails-toepassing te maken;
rails db:create
En voer dan ook de opdracht uit om de database voor uw Rails-toepassing te migreren;
rails db:migrate
Dat is alles.
Ik hoop dat dit helpt