Jag stötte på liknande problem när jag ställde in en ny Rails-applikation med Postgresql. Jag fick följande felmeddelanden nedan
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
För att lösa detta följer du bara lösningen nedan
Först måste vi logga in på postgres användarkonto via kommandoradsgränssnittet;
sudo su - postgres
Anslut sedan till databasservern med psql-klienten, som postgres-rollen:
psql -U postgres
Välkommen till psql 10.6, den interaktiva PostgreSQL-terminalen.
[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help
postgres=#
Därefter, kopplade till psql-klienten, skapar vi en roll med vårt önskade rollnamn som har LOGIN-attributet och vårt önskade lösenord , och som kan skapa databaser och hantera roller (N/B: Vänligen skriv inte detta postgres=# , eftersom det är en platshållare):
postgres=# create role rolename with createdb login password 'password1';
Notera det obligatoriska semikolonet (; ) i slutet av SQL-satsen. Enkla citattecken ( ' ' ) är inte en del av lösenordet, men måste bifoga det.
Fungerade det? Du kan kontrollera med kommandot \du (N/B: Vänligen skriv inte detta postgres=# , eftersom det är en platshållare):
postgres=# \du
Du kan nu köra kommandot för att skapa databasen för din Rails-applikation;
rails db:create
Och kör sedan också kommandot för att migrera databasen för din Rails-applikation;
rails db:migrate
Det är allt.
Jag hoppas att detta hjälper