2013-02-25 66 views
1

當我們更新我們客戶的軟件安裝時,我們現在有一個相當手動,煩瑣,雜亂的&運行SQL部署腳本的容易出錯的方式。我們正在考慮尋找第三方SQL部署工具來自動執行此過程。將SQL部署腳本構建到應用程序中?

但是,我正在推動構建我們自己的SQL部署工具到應用程序本身的想法。這將是簡單的 - 在應用程序啓動時,它會:

1)檢查現有的數據庫架構版本(例如「35」)

2)覈對「最新的」數據庫架構版本(例如。 「38」)

3)檢索資源文​​件(有關SQL部署腳本例如 「36」, 「37」, 「38」)

4)鎖定數據庫和運行每個需要的SQL部署腳本

請注意,這仍然會由IT技術人員運行以防萬一發生任何錯誤,而不是最終用戶。

這似乎是非正統的,但我真的沒有看到任何問題。你的想法?

+0

我見過做了作爲一個SSIS包一個類似的數據庫部署。維護軟件包非常耗時,但經過一些測試和調整後,它運行良好。 – supergrady 2013-02-25 23:14:58

回答

2

我沒有看到任何遺傳錯誤。 在我工作過的公司,他們構建了一個自定義的SQL腳本安裝程序,允許它們自動將更改應用到數據庫,在必要時回滾更改,並且保留所應用的版本的標籤。

無論應用程序需要什麼結果,您都需要設置約定(即數據庫版本應該有這個文件夾結構等),並確定將用於運行該工具的需求和過程你將如何實現它)

+0

謝謝,很高興獲得一些外部驗證。 – 2013-02-26 01:16:41

0

不建立你自己的。定製解決方案的問題太常見了。

您正在尋找數據庫遷移工具,我的建議是liquibase。它可以從命令行運行或集成到構建過程中。對我來說特別有價值的獨特功能是生成SQL升級(和降級)腳本,這些腳本在支持生產安裝時經常需要我們。

對於替代遷移工具更多更詳細的列表,請參閱以下答案: