8

rake db:create:all を実行すると、FATAL role does not exist というエラーが表示されます。

ここの投稿では、答えがうまくいかないことを除いて、同じ質問をしています。

Travis CI: FATAL: 役割が存在しません

この方法でpostgresqlコンソールにアクセスします:「sudo -u postgres psql」

タイピング

CREATE ROLE X SUPERUSER 
CREATE ROLE X CREATEDB LOGIN 

postgres=# プロンプトでは何もしません。何もない。成功または失敗のメッセージや確認メッセージは一切表示されません。

\du と入力してロールを一覧表示すると、postgres ロールしか表示されません。

4

2 に答える 2

15

MySQL と同じように、postgresql ではコマンドの最後にセミコロンを使用する必要があることがわかりました。

私はそれを必要としないMS SQlに慣れすぎています。

于 2012-10-02T19:27:38.157 に答える
0

CREATE ROLE が実行されると、「CREATE ROLE」という確認メッセージが表示されるはずです。

これが起こらない場合は、ステートメントがサーバーに送信されなかったことが原因である可能性があります。他の個人が指摘したように、あなたは行方不明です。コマンドの最後に。ctrl-C を押して現在のコマンドをキャンセルし、最初からやり直します。CTRL-C は現在のコマンドを中止するだけで psql を強制終了しないので、心配しないでください。

psql コマンド ライン ツールの優れた点の 1 つは、プロンプトが多くのことを教えてくれることです。ログインすると、postgres=# のようなものが表示されます。

postgres はデータベース名、= は回線ステータス (以下を参照)、# はスーパーユーザーであることを示します。スーパーユーザーでない場合、最後の文字は > になります。

ライン ステータスは興味深いものです。次のいずれかになります。

  • = 新しいコマンド ライン用 (つまり、継続、引用などではない)
  • - 継続行の場合
  • $quote$ 構文を使用した引用符付き文字列の $
  • 'literal' 構文を使用した引用符付きリテラルの場合
  • " "識別子" 構文を使用した引用識別子

これを認識し、プロンプトに注意を払うことで、後で無数の問題を回避できます。

于 2012-10-03T00:45:10.930 に答える