【问题标题】:Difference between 'Reset' and 'Destroy' Database on Heroku with Postgres?使用 Postgres 在 Heroku 上“重置”和“销毁”数据库之间的区别?
【发布时间】:2017-01-03 11:26:50
【问题描述】:

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

1:重置数据库:

Heroku Dashboard 将此操作描述为:

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

2:销毁数据库:

Heroku Dashboard 将此操作描述为:

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

也就是说,对于这两个动作的幕后差异,仍有一些解释的余地​​。

我查看了 Heroku 帮助,但找不到具体操作之间的差异。

也许对每个动作产生的以 SQL 术语等形式的 Postgres 动作的一些见解会加深理解?

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢@simone。很清楚,但是您肯定阐明了每个操作的一些“含义”。您是否会用“Rails”术语说 reset 相当于 db:reset,而 destroy 相当于 db:drop
    【解决方案2】:

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

    • 重置

    运行重置时,运行此操作会将您的数据库转换为原始或新鲜数据库架构状态,其中架构是干净的。

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

    • 销毁

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-11-29
      • 2014-05-29
      • 1970-01-01
      • 2019-06-24
      • 2019-11-19
      • 2014-05-10
      • 2018-09-20
      • 1970-01-01
      • 2011-04-11
      相关资源
      最近更新 更多