2017-01-03 27 views
0

私は、データベースインスタンスにアクセスするときに、Admin and Dashboard AreaにあるPostgresデータベース用のHerokuには2つのオプションがあることに気付きました。PostgresでHeroku上の 'Reset'と 'Destroy'データベースの違いは?

1:データベースをリセットします。その中にすべてのデータを削除して、その元々プロビジョニング状態にデータベースをリセットし

Herokuのダッシュボードでは、このアクションを説明しています。

2に:破壊データベース:データベースとその中のすべてのデータを破棄し

Herokuのダッシュボードでは、このアクションを説明しています。

つまり、これらの2つの動作の背景にある差異については、まだ解釈が少し残っています。

私はHerokuヘルプを見回しましたが、具体的にアクションの違いをあまり見つけられませんでした。

おそらく、SQLアクションなどのPostgresアクションに関するいくつかの洞察は、より良い理解をもたらすだろうか?

要約すれば、これらのアクションの主な違いは何ですか?

答えて

1

Herokuが提供する説明はかなり明確ですが、それを解釈しようとします。主な違いは、Resetはデータベースを保持し、Destroyはデータベースを削除することです。

データベースを破棄すると、そのインスタンスは使用できなくなります。あなたはデータベース全体を失うでしょう、そしてそれは課金と関連するすべてのアプリにも影響します。

リセットを実行すると、コンテンツ全体がクリアされ、データベースリソースは使用可能なままになります。それは "新鮮なスタート"ボタンのようなものです。

+0

ありがとう@imim。それはかなり明確ですが、あなたは間違いなく各行動からの「含意」の一部を明確にしました。 ** Rails **の**リセット**は 'db:reset'に相当しますが、** destroy **は' db:drop'と同等です。 – nickj

0

データベースの観点からは、それらの間に大きな違いがあります。

  • RESET

リセットを実行すると、スキーマがこのアクションを実行して、クリーンである原稿や新鮮なDBスキーマの状態にあなたのDBをオンにしますが。

異なるモデルのデータを持つアプリケーションがあるとします。これを実行すると、同じデータベースに対してきちんとしたスキーマが得られ、サーバー側の検証を続けることができます。

  • 破壊

を破壊しては、完全にスキーマを破壊しても、あなたがそれを実行した後、あなたのスキーマ構造を元に戻すことができsame.SoのためのDBを破壊するので、ライブのアプリケーションのために危険です。

とします。スキーマを持つアプリケーションを持っていて、そこから何も保持せず、DBとともにスキーマを破壊しないとします。その後、アプリケーション用の新しいデータベースを作成する必要があります。

Railsでは、db:resetとdb:destroyに相当します。

関連する問題