如何在Heroku上使用db:drop和rake db:create?

时间:2012-06-12 03:10:58

标签: database postgresql heroku rake

  

可能重复:
  How to empty DB in heroku

我在Heroku上有一个Postgres数据库。它是免费测试版之一。在本地,在测试时,我经常运行rake db:drop&& rake db:create&& rake db:migrate作为重置数据库的一种方法。

然而,当我尝试在Heroku上运行它时,我收到错误:

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

呃,好的,我怎么能完全重置我的数据库,迁移和一切?

1 个答案:

答案 0 :(得分:85)

pg:reset命令将为您重新创建数据库。用法示例:

$ heroku config | grep POSTGRESQL
HEROKU_POSTGRESQL_RED_URL: postgres://somedatabaseurl
$ heroku pg:reset HEROKU_POSTGRESQL_RED_URL
!    WARNING: Destructive Action
!    This command will affect the app: myappname
!    To proceed, type "myappname" or re-run this command with --confirm
> myappname
Resetting HEROKU_POSTGRESQL_RED_URL (DATABASE_URL)... done

db:reset命令会尝试删除数据库,这不是Heroku的权限所允许的。