8

奇妙なエラー。すべての助けに感謝します。

これが私のdatabase.ymlです

development:
  adapter: postgresql
  encoding: unicode
  database: app_development
  pool: 5
  username: username
  password:

test:
  adapter: postgresql
  encoding: unicode
  database: app_test
  pool: 5
  username: username
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: app_production
  pool: 5
  username: username
  password:

データベースを手動で作成して使用しようとすると、たとえばrake db:test:preare、次のエラーが発生します。

FATAL:  database "postgres" does not exist

データベースを削除しようとすると、次のエラーが発生します。

Couldn't drop app_development : #<PG::Error: FATAL:  database "postgres" does not exist
>
Couldn't drop app_test : #<PG::Error: FATAL:  database "postgres" does not exist
>
Couldn't drop app_production : #<PG::Error: FATAL:  database "postgres" does not exist

を使用してデータベースを作成しようとするとrake db:create:all、次のエラーが発生します。

app_development already exists
app_test already exists
app_production already exists

したがって、私のdatabase.ymlは問題ないようです。しかし、何らかの理由で、私のdatabase.ymlにない場合は、postgresというデータベースを探しています。

助けていただければ幸いです。

編集:

熊手の痕跡からの詳細は次のとおりです。

{"adapter" => "postgresql"、 "encoding" => "unicode"、 "database" => "app_production"、 "pool" => 5、 "username" => "username"、のデータベースを作成できませんでした"password" => nil}

4

3 に答える 3

5

[Mac OSX]Linuxを使用しているときにPostGreSQLで問題が発生したことはありません。しかし、私はMacBookを使い始めて、あなたと同じエラーが発生しました。だから...おそらくこれはあなたが期待していた解決策ではありませんが、この1つのアプリは私のすべての頭痛の種を解決しました。皆さんと共有したかっただけです。

http://postgresapp.com/

于 2012-12-04T16:32:20.327 に答える
2

あなたは実際にpostgresデータベースを持っているかどうかを言っていません。それはエラーが不平を言っていることです。

おそらくそうではなく、この「rake」ツールはユーザーpostgresとしてデータベースpostgresに接続しているため、新しいデータベースを作成できます。明らかに、それは何かをするために誰かとして接続する必要があります。

時間をかけてPostgreSQLのマニュアルをざっと読み、ロギングを有効化/制御する方法を理解してください。それは長期的にはあなたに役立つでしょう。rake/railsにもデバッグ/ログ設定があると思います。

于 2012-06-02T08:54:58.583 に答える
0

私はMacOSXを使用していますが、pythonとsqlalchemyでも同じ問題が発生しました。Flavioが提案したように、postgresappをチェックし、「接続方法」セクションをチェックします。

from sqlalchemy import create_engine
engine = create_engine('postgresql://localhost/[YOUR_DATABASE_NAME]')
于 2020-03-11T09:14:07.867 に答える