簡體   English   中英

“spring.jpa.hibernate.ddl-auto”屬性用於遷移?

[英]"spring.jpa.hibernate.ddl-auto" property is used for migration?

我不確定這個問題,因為我不完全熟悉遷移的概念。 我剛剛知道這用於更新數據庫而無需從數據庫控制台手動刪除表。 既然我已經知道了,我是這么想的,如果我把這個屬性設置為“create-drop”,我就可以實現遷移。 我對么? 任何人都可以向我解釋或建議任何參考嗎?

對於記錄,spring.jpa.hibernate.ddl-auto屬性是881821203188數據JPA特定方式,並將其指定為881881881881881818181818181818181818181818181818181818.1818181818181818 y.and。

createcreate-dropvalidateupdate主要影響模式工具管理在啟動時如何操作數據庫模式。

例如,更新操作將查詢 JDBC 驅動程序的 API 以獲取數據庫元數據,然后 Hibernate 比較它基於讀取注釋類或 HBM XML 創建的 object model 並嘗試調整模式。

例如,更新操作將嘗試添加新的列、約束等,但永遠不會刪除以前可能存在但不再作為 object model 的一部分從先前運行中刪除的列或約束。

通常在測試用例場景中,你可能會使用create-drop來創建你的模式,你的測試用例添加一些模擬數據,你運行你的測試,然后在測試用例清理期間,模式對象被刪除,留下一個空數據庫。

在開發中,經常會看到開發人員使用update來自動修改模式以在重啟時添加新內容。 但請再次理解,這不會刪除不再需要的先前執行中可能存在的列或約束。

在生產中,通常強烈建議您使用或干脆不指定此屬性。 這是因為 DBA 的常見做法是檢查數據庫更改的遷移腳本,尤其是當您的數據庫在多個服務和應用程序之間共享時。

“spring.jpa.hibernate.ddl-auto”配置屬性的可能值如下:

  • none - 不執行任何操作。 不會生成架構。
  • create-only - 將生成數據庫模式。
  • drop - 數據庫模式將被刪除。
  • create - 數據庫模式將被刪除並在之后創建。
  • create-drop - 數據庫模式將被刪除並在之后創建。 關閉 SessionFactory 后,數據庫模式將被刪除。
  • 驗證- 數據庫模式將使用實體映射進行驗證。
  • update - 數據庫模式將通過將現有數據庫模式與實體映射進行比較來更新。

這些是需要知道的一些基本的東西,

驗證:驗證模式,不對數據庫進行任何更改。 更新:更新模式。 創建:創建模式,銷毀以前的數據。 create-drop:當顯式關閉 SessionFactory 時刪除架構,通常是在應用程序停止時。 none:不對模式做任何事情,不對數據庫進行任何更改

這些選項似乎旨在成為開發人員工具,而不是為了促進任何生產級數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM