2017-06-16 23 views
0

在Hibernate中,如果我們將hbm2ddl.auto設置爲create/create-drop,那麼它將在啓動時刪除舊的模式並創建新的模式。這意味着,它也會刪除數據?我懷疑是否它刪除了所有的東西,那我們怎麼才能回收舊的數據呢? (例如:用戶註冊詳情)以及在生產環境中應該使用什麼正確選項?hbm2ddl.auto = create/create-drop它會刪除數據嗎?

請糾正我,如果我錯了。

+0

相反的DDL檢查遷徙路線或liquibase。 – ByeBye

+0

如果你刪除模式.....然後你失去了你的數據不是嗎? – Antoniossss

+0

在這種情況下使用'update'它不會丟棄 – soorapadman

回答

0

什麼是在生產環境中應該使用的正確選項?

恕我直言,生產環境唯一有效的選擇是validate。其他任何事情都可能導致丟失數據/破壞數據庫模式的潛在風險,這是由於錯誤配置,簡單的錯誤或錯字造成的。

使用遷移工具進行模式更新,因爲它們在您的模式中提供「版本控制1」,允許在部署之前對其進行測試,並恢復更改。

+0

嗨,如果我想添加新的表和新的列到數據庫中存在的表,然後hbm2ddl.auto =驗證將適合(與不接觸已存在的模式/表/數據的條件?) –

+0

直到你沒有在生產中可以使用更新,在生產中使用只驗證。更新添加新的列,表,索引dut不會丟棄,您現在已經不在映射中了 – xyz

相關問題