2017-01-03 35 views
0

我注意到在訪問數據庫實例時,有兩種選擇用於訪問PostgreSQL數據庫的Heroku的Admin and Dashboard Area用Postgres區別Heroku上的'Reset'和'Destroy'數據庫?

1:重置數據庫:

Heroku的儀表板介紹此行動:

重置數據庫到其最初置備的狀態,刪除它裏面的所有數據。

2:消滅數據庫:

Heroku的儀表板介紹此行動:

銷燬數據庫和所有它裏面的數據。

也就是說,對於這兩種行爲幕後的差異,我們仍然有點兒解釋。

我查看過Heroku的幫助,但無法找到具體的操作之間的差異。

也許對每個操作所產生的Postgres在SQL術語等操作中的一些見解會產生更好的理解?

總之,這些行爲之間的主要區別是什麼?

回答

1

Heroku提供的解釋非常清楚,但是讓我試着解釋一下。主要區別在於Reset將保留數據庫,而Destroy將刪除數據庫。

如果銷燬數據庫,則該實例將不再可用。您將丟失整個數據庫,並且這也會影響計費和關聯的所有應用。

重置反而會簡單地清除整個內容,使數據庫資源可用。這就像一個「開始新鮮」按鈕。

+0

謝謝@simone。這很清楚,但是你明確地澄清了每個操作的一些「含義」。你會用「Rails」的話來說**重置**相當於'db:reset',而** destroy **相當於'db:drop'? – nickj

0

從數據庫的角度來看,它們之間存在關鍵差異。

  • RESET

在運行復位會變成你的DB到哪裏的模式是通過運行這個動作乾淨原件或新鮮的DB模式狀態。

假設你有一個應用程序使用不同模型的數據如果你正在執行這個,那麼它會給你相同數據庫的整齊模式所以你可以繼續對服務器端進行驗證。

  • DESTROY

破壞是很危險的現場應用,因爲它完全破壞的模式,也破壞了DB的same.So你執行它後可以恢復您的模式結構。

假設如果你有一個具有模式的應用程序,所以它不會保留任何東西,並將模式和數據庫一起銷燬。那麼之後您需要爲您的應用程序創建新的數據庫。

就Rails而言,它相當於db:reset和db:destroy。

相關問題