45

所以我在我的 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

但是,现在我正在尝试 rake db:migrate 我的应用程序,以便数据库全部设置为我的模型。运行该命令不会做任何事情,所以我尝试了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
-- 假设_migrated_upto_version(20130924040351, ["/home/action/braindb/db/migrate"])
-> 0.0882s

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

4

8 回答 8

70

heroku pg:reset DATABASE按照https://devcenter.heroku.com/articles/rake中的说明使用

您不能在 Heroku 中删除数据库,rake db:reset因为用户没有权限。

于 2014-03-22T17:48:02.947 回答
6

不能把你的 PG 数据库放到 Heroku 上。

于 2013-09-24T04:11:52.563 回答
6

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

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

  2. heroku pg:reset DATABASE# 重置数据库

  3. 回答提示以确认

于 2015-11-11T19:10:29.820 回答
5

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

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

2) 从Heroku 的文档中运行heroku rake db:schema:load

于 2019-01-02T12:29:06.780 回答
4

我有同样的问题。我通过运行修复它:

heroku pg:reset DATABASE

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

于 2015-08-17T03:12:48.073 回答
3

如果你得到这个是因为你正在运行rake db:create,那么只需跳到迁移。无论出于何种原因,heroku 上的 postgresql 不需要rake db:create本地安装可能需要的步骤。

换句话说,而不是

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

改为运行它

heroku run rake db:migrate db:seed
于 2021-01-23T15:30:15.773 回答
1

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

heroku run rails db:migrate -a YOURAPPNAME
于 2020-12-28T21:20:21.520 回答
0

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

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

于 2014-05-07T19:20:44.253 回答