在Heroku上销毁Postgres数据库

60

我想销毁数据库,但不确定该使用什么命令。有人知道如何做吗?

我想摧毁数据库,但是不确定应该使用什么命令。有人知道该怎么做吗?

可能是重复的问题:如何在Heroku中清空数据库 - Erwin Brandstetter
4个回答

139

你不应该使用postgres命令完全删除你的数据库,因为你将没有权限创建一个新的数据库。相反,你应该使用Heroku命令清除你的数据库:

heroku pg:reset DATABASE_URL

什么是数据库?我找不到URL。在Heroku上只有数据库名称、主机、用户和密码。什么是数据库? - siamii
19
@siamii刚刚执行了这个命令,完整命令是heroku pg:reset DATABASE_URL,DATABASE_URL是一个环境配置变量,指向你的数据库URL,Heroku知道如何读取它,所以只需按照原样输入即可。 - Neara
如果您已经以错误的方式执行并且失去了创建新数据库的权限,那么该如何修复? - ahnbizcad
一条很好的评论,可以保护人们免于犯错,但并不是问题的答案。 - Yuri Gadow
1
我还建议阅读https://dev59.com/amw05IYBdhLWcg3w_Guwheroku pg:reset DATABASE --confirm {app-name}也是一个好命令。 - Stephane Paquet

34

以上所有答案都没有描述如何销毁Heroku数据库,这是最初的问题(也是我来寻求答案的原因)。

官方文档中,以下任一方法均可:

  • heroku addons:destroy heroku-postgresql:tier(其中tier是数据库等级,例如hobby-dev
  • heroku addons:destroy HEROKU_POSTGRESQL_<COLOR>(如果您有多个该等级的数据库)

请注意,由于这是一项破坏性操作,系统将提示您确认此操作。如果您想在脚本中使用此操作,则可以使用类似以下内容跳过提示:

heroku addons:destroy HEROKU_POSTGRESQL_<COLOR> --confirm <appname>

希望这对你有帮助!


感谢@john-paul-ashenfelter的编辑建议。不确定为什么您的建议被拒绝了,但我已经按照您的建议进行了更改。 - JacobEvelyn
1
重新创建数据库,使用命令 heroku addons:create heroku-postgresql:tier(其中 tier 是数据库层级,例如 hobby-dev)。请参考文档 - UsamaMan

9
回答Siamii上面的问题:在heroku pg:reset DATABASE中,DATABASE默认为postgres

7

只需按照以下步骤操作。运行

heroku pg:reset DATABASE

重新创建一个空数据库,然后运行

heroku run rake db:migrate

以正确的模式和数据初始化数据库。

查看新的Heroku文档,它会有所帮助;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接