2013-02-28 82 views
0

問題是,我不確定是否使用Hibernate進行第一次表初始化(創建表)是一種好方法。 我想完全控制這個過程。JPA(Hibernate)表初始化,最佳實踐

所以,我想過使用DDL初始化腳本。但它似乎是DBMS依賴的,這也不好。

我想完全控制初始化過程,同時它應該與DBMS無關。

我該如何達到這個目標?

+0

你見過Liquibase嗎? http://liquibase.org/ – Charlie 2013-02-28 21:05:43

+0

不,我沒有。它看起來很有趣:) – XZen 2013-03-01 07:23:02

回答

0

這取決於你正在嘗試使用數據庫。您可以設置兩個配置文件,比如說一個用於測試的文件,用於在derby中創建表格,然後是一個生產配置文件,該文件將使用假定存在表格的「生產」數據庫。

此外,在開發過程中創建表是很有意義的,以便您可以即時創建對象/表,但是一旦您發佈,您就可以切換配置。

+1

但是如果我想有機會初始化我的表在生產中。例如,在某些基於Web的應用程序的第一次執行期間。 – XZen 2013-03-01 07:29:32

+1

通常,爲生產使用自動創建表是一個壞主意。通常情況下,您應該進行足夠的測試,以確切知道生產所需的模式,然後預安裝數據庫,以便永不影響生產數據。雖然如果你的應用程序不是數據密集型/敏感的,那麼它可以正常工作。根據我的經驗,應用程序不應該對數據庫有任何控制。關注點分離。如果應用程序失敗,應該將其隔離,以免對數據造成不利影響。 – 2013-03-06 15:27:50