Jeg løb ind i lignende problemer, da jeg satte en ny Rails-applikation med Postgresql. Jeg fik følgende fejlmeddelelser nedenfor
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
For at løse dette skal du blot følge nedenstående løsning
Først skal vi logge ind på postgres-brugerkontoen via kommandolinjegrænsefladen;
sudo su - postgres
Forbind derefter til databaseserveren ved hjælp af psql-klienten, som postgres-rollen:
psql -U postgres
Velkommen til psql 10.6, den interaktive PostgreSQL-terminal.
[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help
postgres=#
Dernæst, forbundet med psql-klienten, opretter vi en rolle med vores ønskede rollenavn der har LOGIN-attributten og vores ønskede adgangskode , og som kan oprette databaser og administrere roller (N/B: Indtast venligst ikke dette postgres=# , da det er en pladsholder):
postgres=# create role rolename with createdb login password 'password1';
Bemærk det påkrævede semikolon (; ) i slutningen af SQL-sætningen. De enkelte anførselstegn ( ' ' ) er ikke en del af adgangskoden, men skal omslutte den.
Virkede det? Du kan kontrollere ved at bruge \du-kommandoen (N/B: Indtast venligst ikke dette postgres=# , da det er en pladsholder):
postgres=# \du
Du kan nu køre kommandoen for at oprette databasen til din Rails-applikation;
rails db:create
Og kør så også kommandoen for at migrere databasen til din Rails-applikation;
rails db:migrate
Det er alt.
Jeg håber, at dette hjælper