在Hibernate中,如果我們將hbm2ddl.auto設置爲create/create-drop,那麼它將在啓動時刪除舊的模式並創建新的模式。這意味着,它也會刪除數據?我懷疑是否它刪除了所有的東西,那我們怎麼才能回收舊的數據呢? (例如:用戶註冊詳情)以及在生產環境中應該使用什麼正確選項?hbm2ddl.auto = create/create-drop它會刪除數據嗎?
請糾正我,如果我錯了。
在Hibernate中,如果我們將hbm2ddl.auto設置爲create/create-drop,那麼它將在啓動時刪除舊的模式並創建新的模式。這意味着,它也會刪除數據?我懷疑是否它刪除了所有的東西,那我們怎麼才能回收舊的數據呢? (例如:用戶註冊詳情)以及在生產環境中應該使用什麼正確選項?hbm2ddl.auto = create/create-drop它會刪除數據嗎?
請糾正我,如果我錯了。
什麼是在生產環境中應該使用的正確選項?
恕我直言,生產環境唯一有效的選擇是validate
。其他任何事情都可能導致丟失數據/破壞數據庫模式的潛在風險,這是由於錯誤配置,簡單的錯誤或錯字造成的。
使用遷移工具進行模式更新,因爲它們在您的模式中提供「版本控制1」,允許在部署之前對其進行測試,並恢復更改。
嗨,如果我想添加新的表和新的列到數據庫中存在的表,然後hbm2ddl.auto =驗證將適合(與不接觸已存在的模式/表/數據的條件?) –
直到你沒有在生產中可以使用更新,在生產中使用只驗證。更新添加新的列,表,索引dut不會丟棄,您現在已經不在映射中了 – xyz
validate-現有架構
最新情況:僅更新架構曾經創造
每次create-創建模式。
而且,這裏是一個很好的解釋Hibernate hbm2ddl.auto possible values and what they do?
相反的DDL檢查遷徙路線或liquibase。 – ByeBye
如果你刪除模式.....然後你失去了你的數據不是嗎? – Antoniossss
在這種情況下使用'update'它不會丟棄 – soorapadman