Podobne problemy napotkałem podczas ustawiania nowej aplikacji Railsowej za pomocą Postgresql. Poniżej otrzymuję następujące komunikaty o błędach
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
Aby rozwiązać ten problem, postępuj zgodnie z poniższym rozwiązaniem
Najpierw musimy zalogować się na konto użytkownika postgres za pomocą interfejsu wiersza poleceń;
sudo su - postgres
Następnie połącz się z serwerem bazy danych za pomocą klienta psql, jako rola postgres:
psql -U postgres
Witamy w psql 10.6, interaktywnym terminalu PostgreSQL.
[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help
postgres=#
Następnie, połączeni z klientem psql, utworzymy rolę z naszą pożądaną rolename który ma atrybut LOGIN i nasze pożądane hasło , które mogą tworzyć bazy danych i zarządzać rolami (Uwaga: Nie wpisuj tego postgres=# , ponieważ jest to symbol zastępczy):
postgres=# create role rolename with createdb login password 'password1';
Zwróć uwagę na wymagany końcowy średnik (; ) na końcu instrukcji SQL. Pojedyncze cudzysłowy ( ‘ ‘ ) nie są częścią hasła, ale muszą je zawierać.
Zadziałało? Możesz to sprawdzić za pomocą polecenia \du (N/B: Nie wpisuj tego postgres=# , ponieważ jest to symbol zastępczy):
postgres=# \du
Możesz teraz uruchomić polecenie, aby utworzyć bazę danych dla swojej aplikacji Rails;
rails db:create
A następnie uruchom polecenie migracji bazy danych dla aplikacji Rails;
rails db:migrate
To wszystko.
Mam nadzieję, że to pomoże