【问题标题】:How to rake db:drop and rake db:create on Heroku? [duplicate]如何在 Heroku 上 rake db:drop 和 rake db:create? [复制]
【发布时间】:2012-06-14 22:45:38
【问题描述】:

可能重复:
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.

嗯,好的,那么我应该如何完全重置我的数据库、迁移和所有内容?

【问题讨论】:

    标签: database postgresql heroku rake


    【解决方案1】:

    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 权限所允许的。

    【讨论】:

    • 在我的大脑某处——不知道在哪里。
    • 只是为了澄清跳过上述链接的任何人,您想在命令行运行 heroku pg:reset,而不是 heroku run rake pg:reset 或类似的东西。跨度>
    • 只是一个小更新:要重置postgres数据库,您需要输入数据库的name
    • 这对我有用:heroku config | grep POSTGRESQL - 获取数据库的名称,例如HEROKU_POSTGRESQL_BLUE_URL 然后运行 ​​heroku pg:reset HEROKU_POSTGRESQL_BLUE_URL
    • 当我使用数据库名称尝试上述选项时,我收到一条错误消息,指出 Valid options are: DATABASE_URL。所以我输入了heroku pg:reset DATABASE_URL,它工作得很好。
    猜你喜欢
    • 2011-12-31
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多