Postgresqlで新しいRailsアプリケーションを設定するときに、同様の問題が発生しました。以下のエラーメッセージが表示されました
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
次に、postgresロールとしてpsqlクライアントを使用してデータベースサーバーに接続します。
psql -U postgres
PostgreSQLインタラクティブターミナルであるpsql10.6へようこそ。
[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
それだけです。
これがお役に立てば幸いです