sql >> データベース >  >> RDS >> PostgreSQL

Postgresql:致命的:役割は存在しません

    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
    

    それだけです。

    これがお役に立てば幸いです



    1. 手順バッファオーバーフロー

    2. MySQLのWHERE列=での疑問符の重要性は何ですか?

    3. エラー:エラー1005:テーブルを作成できません(errno:121)

    4. バイナリログに書き込まずにMYSQLでクエリを実行するにはどうすればよいですか?