Сблъсках се с подобни проблеми при настройване на ново Rails приложение с Postgresql. Получих следните съобщения за грешка по-долу
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
За да разрешите това, просто следвайте решението по-долу
Първо, трябва да влезем в потребителския акаунт на postgres чрез интерфейса на командния ред;
sudo su - postgres
След това се свържете със сървъра на базата данни, като използвате psql клиента, като ролята на postgres:
psql -U postgres
Добре дошли в psql 10.6, интерактивния терминал на PostgreSQL.
[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help
postgres=#
След това, свързани с psql клиента, ще създадем роля с желаното от нас име на роля който има атрибута LOGIN и желаната от нас парола и може да създава бази данни и да управлява роли (N/B: Моля, не пишете това postgres=# , тъй като е заместител):
postgres=# create role rolename with createdb login password 'password1';
Обърнете внимание на задължителната крайна точка и запетая (; ) в края на SQL оператора. Единичните кавички ( ‘ ‘ ) не са част от паролата, но трябва да я ограждат.
Проработи ли? Можете да проверите с помощта на командата \du (N/B: Моля, не пишете това postgres=# , тъй като е заместител):
postgres=# \du
Вече можете да изпълните командата за създаване на база данни за вашето Rails приложение;
rails db:create
След това също изпълнете командата за мигриране на базата данни за вашето Rails приложение;
rails db:migrate
Това е всичко.
Надявам се това да помогне