我的數據庫背景來自Django框架(python)。在Django中,開始數據庫遷移非常簡單:Django migrations。 Django框架提供了基於模型創建遷移的工具,也是一種在數據庫上應用遷移的工具。我認爲這種做法既適用於開發,也適用於生產。您不必親自編寫遷移,該框架爲您創建了它們。如何在Spring Boot中使用Hibernate處理數據庫遷移?
現在我已經開始了一個Spring Boot和Hibernate的項目。我將我的應用程序配置爲在JPA中使用hibernate。有了這些設置,我現在需要知道我的框架如何處理數據庫遷移?我的意思是,如果我更改了一列,或者它是類型的,或者甚至可能將其刪除,那麼如何將數據庫遷移到更改?我知道春季啓動會自動檢測啓動時的列更改,並根據模型(實體的)創建不存在的列。我猜它是與可變
spring.jpa.hibernate.ddl-汽車
但它是如何處理現有的數據庫對象?它是否也將列添加到它們,以及具有什麼價值?我設定的默認值?如果我更改列類型會怎麼樣?它可以處理這個變化嗎?從長遠來看,這些設置和spring-boot自動化數據庫管理可能還不夠?
我想知道的是,如何使用Spring Boot和Hibernate組合來處理數據庫遷移的最佳實踐是什麼?我相信有一個標準,這個組合的大多數人如何處理遷移?我希望它像Django一樣容易......我知道flyway,但不知道我是否真的需要它,或者如果它與我的這種組合(包括spring boot和hibernate)有很大關係。
是的,Flyway和liquibase都是很好的數據庫遷移工具。你使用spring和hibernate的事實是無關緊要的。如果你需要遷移數據庫,他們是不錯的選擇。 ddl-auto不是數據庫遷移工具。它只是一個快速入門的方法,並從頭開始生成一個模式,恕我直言。不是我曾經用過的產品。 –