2011-04-14 55 views
5

我在日常編程任務中使用Hibernate,我發現它非常好。特別是我喜歡在開發過程中管理模式更新的方式,從而使我避免了許多麻煩。如何避免使用休眠模式更新

無論如何,他們在文檔上寫道,它不是在生產環境中推薦的,可以理解。因此,當我更新生產服務器上的應用程序時,可以採用哪種行業標準方式?我想創建一個自動化的安裝過程來轉儲數據庫內容(基本上是一個備份),然後從代碼中調用hibernate模式更新,然後對查詢等進行一些測試。無論如何,有沒有工具會自動做到這一點,並且經過很好的測試?

說出來! :)

謝謝。

回答

2

查看Strategies for dealing with constantly changing requirements for MySQL schemas?以獲得類似的問題及其答案。

爲了簡短起見,一旦您有合理的數據量並需要將其從一個模式遷移到另一個模式,您需要編寫SQL腳本來更改模式和移動/轉換數據。

+0

即使mySQL是我選擇的數據庫,我正在談論休眠。所以我想要獨立於數據庫。 – gotch4 2011-04-14 13:16:28

0

我個人認爲這個建議太謹慎了。我們在生產和開發中使用Hibernate自動更新功能已有很多年,並且從來沒有遇到過問題(是的,我們迎合了很多大型系統和衆所周知的品牌)。

很明顯,您必須測試您的應用程序以確保Hibernate在從一個版本升級到另一個版本時執行正確的工作,但同樣適用於所有其他軟件方面。您還必須瞭解自動更新可以執行的操作(例如,創建新表,添加新索引)以及不能執行的操作(例如,刪除表,刪除約束)。缺少的位可以很容易地用原始JDBC進行操作,而不是沒有測試。