Rake db:重置'用户没有CONNECT权限'

时间:2013-09-24 04:10:37

标签: ruby-on-rails ruby postgresql heroku

所以我在我的Rails应用程序中使用Heroku Postgres,但我不是在Heroku本身上托管我的应用程序。我在我的database.yml中使用了Heroku的Active Record连接详细信息,它看起来像这样:

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:迁移我的应用程序,以便数据库全部使用我的模型进行设置。运行该命令不起作用,所以我尝试了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()
      - &GT; 1.3997s
   - assume_migrated_upto_version(20130924040351,[“/ home / action / braindb / db / migrate”])
      - &GT; 0.0882s

知道我做错了什么。我还是Rails的新手,所以有时我会忘记在迁移主机时如何正确设置Postgres数据库。

8 个答案:

答案 0 :(得分:59)

https://devcenter.heroku.com/articles/rake

中所述,改为使用heroku pg:reset DATABASE

您无法使用rake db:reset删除Heroku中的数据库,因为用户没有权限。

答案 1 :(得分:5)

你在Heroku上can't drop your PG database

答案 2 :(得分:5)

我最近遇到了这个问题并通过以下步骤解决了这个问题。

  1. heroku pg --help获取使用postgres的命令名称

  2. heroku pg:reset DATABASE#重置db

  3. 回答提示确认

答案 3 :(得分:3)

我遇到了同样的问题。我通过运行来修复它:

heroku pg:reset DATABASE

(注意:必须如上所述指定DATABASE)

答案 4 :(得分:2)

与其他人一样,我遇到了类似的问题,但是运行pg:reset并没有帮助:这就是我遇到的user does not have CONNECT privilege问题。

1)heroku pg:reset,将提示您输入项目名称进行确认。

2)从Heroku's docs运行heroku rake db:schema:load

答案 5 :(得分:2)

如果您是因为运行 rake db:create 而获得此信息,请直接跳到迁移。无论出于何种原因,heroku 上的 postgresql 不需要本地安装可能需要的 rake db:create 步骤。

换句话说,不是

heroku run rake db:create db:migrate db:seed

改为运行这个

heroku run rake db:migrate db:seed

答案 6 :(得分:0)

对于我的某个应用,升级到Heroku数据库的第一个付费层似乎对我有用:https://devcenter.heroku.com/articles/upgrade-heroku-postgres-with-pgbackups#provision-new-plan

原因是“heroku pg:info”显示我超出了我的行限制,如下所示: 行:12392/10000(写入访问被撤销)

答案 7 :(得分:0)

我的解决方案是直接迁移,因为数据库已经创建(不要继续“heroku run rails db:create”

heroku run rails db:migrate -a YOURAPPNAME