使用Postgres在Heroku上“重置”和“销毁”数据库之间的区别?

时间:2017-01-03 11:26:51

标签: ruby-on-rails database postgresql heroku heroku-postgres

我注意到在访问数据库实例时,Admin and Dashboard Area中的Postgres数据库有两个Heroku选项。

1:重置数据库:

Heroku Dashboard将此操作描述为:

  

将数据库重置为最初配置状态,删除其中的所有数据。

2:销毁数据库:

Heroku Dashboard将此操作描述为:

  

销毁数据库及其中的所有数据。

尽管如此,对于这两种行为背后的差异仍有待解释。

我环顾了Heroku的帮助,但没有找到具体的行动之间的差异。

或许对每个动作所做的关于Postgres SQL术语等行为的一些见解会产生更好的理解吗?

总之,这些行动之间的主要区别是什么?

2 个答案:

答案 0 :(得分:1)

Heroku提供的解释非常清楚,但让我试着解释一下。主要区别在于Reset将保留数据库,而Destroy将删除数据库。

如果销毁数据库,该实例将不再可用。您将丢失整个数据库,这也将影响计费和任何相关的应用程序。

重置只会清除整个内容,使数据库资源可用。这就像是一个“开始新鲜”按钮。

答案 1 :(得分:0)

在数据库方面,它们之间存在着重要的差异。

  • 重置

运行重置时,您可以通过运行此操作将数据库转换为原始状态或Fresh数据库架构状态,其中架构是干净的。

假设您有一个具有不同模型中的数据的应用程序如果您正在执行此操作,那么它会为您提供相同数据库的整齐模式,以便您可以继续对服务器端进行验证。

  • DESTROY

销毁对于实时应用程序是危险的,因为它会完全破坏模式并同时销毁数据库。因此,您可以在执行后恢复模式结构。

假设您有一个具有架构的应用程序,因此它不会保留任何内容并随DB一起销毁架构。之后,您需要为您的应用程序创建新的数据库。

就Rails而言,它相当于db:reset和db:destroy。