Na podobné problémy jsem narazil při nastavování nové aplikace Rails pomocí Postgresql. Níže jsou zobrazeny následující chybové zprávy
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
Chcete-li to vyřešit, postupujte podle níže uvedeného řešení
Nejprve se musíme přihlásit k uživatelskému účtu postgres přes rozhraní příkazového řádku;
sudo su - postgres
Dále se připojte k databázovému serveru pomocí klienta psql jako postgres role:
psql -U postgres
Vítejte v psql 10.6, interaktivním terminálu PostgreSQL.
[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help
postgres=#
Poté ve spojení s klientem psql vytvoříme roli s požadovaným názvem role který má atribut LOGIN a naše požadované heslo , které mohou vytvářet databáze a spravovat role (N/B: Nepište prosím toto postgres=# , protože se jedná o zástupný symbol):
postgres=# create role rolename with createdb login password 'password1';
Poznamenejte si požadovaný střední středník (; ) na konci příkazu SQL. Jednoduché uvozovky ( ‘ ‘ ) nejsou součástí hesla, ale musí je uzavřít.
Fungovalo to? Můžete to zkontrolovat pomocí příkazu \du (N/B: Nepište prosím toto postgres=# , protože se jedná o zástupný symbol):
postgres=# \du
Nyní můžete spustit příkaz k vytvoření databáze pro vaši aplikaci Rails;
rails db:create
A pak také spusťte příkaz pro migraci databáze pro vaši aplikaci Rails;
rails db:migrate
To je vše.
Doufám, že to pomůže