web-dev-qa-db-ja.com

Rake db:reset 'ユーザーにはCONNECT特権がありません'

だから、私はRailsアプリでHeroku Postgresを使用していますが、Heroku自体でアプリをホストしていません。次のようになります。

development:
adapter: postgresql
encoding: unicode
pool: 5
database: [database]
username: [username]
password: [password]
Host: ec2-54-227-243-78.compute-1.amazonaws.com
port: 5432

しかし、今では、データベースをすべてのモデルでセットアップできるように、db:migrateでアプリをrakeしようとしています。そのコマンドを実行しても何も実行されないので、rake db:resetと私はこれを得る:

Couldn't drop df2cokjfj0k4vu : #<PG::Error: FATAL:  permission denied for database "postgres"                                                                  
DETAIL:  User does not have CONNECT privilege.                                                                                                                 

df2cokjfj0k4vuはすでに存在します
-initialize_schema_migrations_table()
-> 1.3997s
-assume_migrated_upto_version(20130924040351、["/ home/action/braindb/db/migrate"])
-> 0.0882s

私が間違っていることは何でも考えてください。 Railsはまだかなり新しいので、ホストを移行するときにPostgresデータベースを適切にセットアップする方法を忘れることがあります。

39
Tom Maxwell

https://devcenter.heroku.com/articles/rake に記載されているように、代わりにheroku pg:reset DATABASEを使用します

ユーザーには権限がないため、rake db:resetでHerokuにデータベースを削除することはできません。

62
luigi7up
6
Nick Veys

最近この問題が発生し、次の手順で解決しました。

  1. heroku pg --helpは、postgresを使用するためのコマンドの名前を取得します

  2. heroku pg:reset DATABASE#データベースをリセットします

  3. プロンプトに答えて確認します

6
user3162553

同じ問題がありました。次を実行して修正しました:

heroku pg:reset DATABASE

(注:上記のようにDATABASEを指定する必要があります)

4
rattanak

他の人と同様に、私は同様の問題を抱えていましたが、pg:resetを実行しても助けにはなりませんでした。そこで、user does not have CONNECT privilege問題に遭遇しました。

1)heroku pg:reset確認のためにプロジェクト名を入力するよう求められます。

2)から Herokuのドキュメント run heroku rake db:schema:load

3
tfantina

私のアプリの1つでは、Herokuデータベースの最初の有料ティアへのアップグレードがうまくいくようでした: https://devcenter.heroku.com/articles/upgrade-heroku-postgres-with-pgbackups#provision-新計画

理由は、次のように「heroku pg:info」が行の制限を超えていることを明らかにしたからです:行:12392/10000(書き込みアクセスが取り消されました)

0
user1515295