所以我在我的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数据库。
答案 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)
我最近遇到了这个问题并通过以下步骤解决了这个问题。
heroku pg --help
获取使用postgres的命令名称
heroku pg:reset DATABASE
#重置db
回答提示确认
答案 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