使用 Postgres 的 Heroku 上 'Reset' 和 'Destroy' 数据库之间的区别?

Difference between 'Reset' and 'Destroy' Database on Heroku with Postgres?

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

1:重置数据库:

Heroku Dashboard 将此操作描述为:

Reset the database to its originally-provisioned state, deleting all data inside it.

2:销毁数据库:

Heroku Dashboard 将此操作描述为:

Destroys the database and all of the data inside it.

尽管如此,对于这两个动作的幕后差异仍有一些解释空间。

我查看了 Heroku 的帮助,但找不到太多关于操作之间具体差异的信息。

也许对每个动作所做的 SQL 术语等中的 Postgres 动作的一些见解会加深理解?

总而言之,这些操作之间的主要区别是什么?

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

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

重置只会清除全部内容,使数据库资源可用。它就像一个 "start fresh" 按钮。

同时在数据库方面它们之间存在关键差异。

  • 重置

虽然 运行 重置会将您的数据库变成原始或新鲜数据库模式状态,其中模式通过 运行 此操作是干净的。

假设你有一个应用程序,它的数据在不同的模型中,如果你正在执行它,那么它会为你提供同一数据库的简洁模式,这样你就可以对服务器端进行验证。

  • 销毁

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

假设如果您有一个具有模式的应用程序,那么它不会保留任何内容并将模式与数据库一起销毁。然后你需要为你的应用程序创建新的数据库。

在Rails方面相当于db:reset和db:destroy。