2011-01-21 31 views
3

當我爲每個版本發佈軟件版本和分支版本時,如何輕鬆地爲這些版本生成更新/修補程序腳本?我無法打開數據庫項目並對它們進行比較,因爲它們的命名相同,而Visual Studio不喜歡這樣。爲數據庫項目創建「更新腳本」?

我的下一個想法是將低版本部署到數據庫,然後打開下一個版本的軟件來生成更改腳本。這似乎有點乏味。

此外,如何將其整合到安裝項目而不是手動過程?

回答

1

即使您使用的是新的實體框架,您仍然無法讓Visual Studio等自動跟蹤數據庫模式中的更改,您必須手動跟蹤版本之間的更改並應用它們(通常在升級後的應用程序首次運行)。

我建議......

  1. 添加版本標識符在某些表數據庫架構。
  2. 跟蹤版本之間的所有數據庫模式更改(例如,如果使用MySQL),那麼每次更改模式時,Toad都會提交一個存儲庫(例如SVN),這會使日誌記錄更改更加容易。
  3. 當您部署新版本時,將所有架構更改合併,並將它們標記爲從版本Y到版本Z的更改集。
  4. 當您的應用第一次運行時(所以不需要安裝程序但帶有應用程序本身),查找架構中的版本,並應用每個更新腳本,直到您到達應用程序的版本。因此,如果應用程序運行並發現架構X,它將運行腳本Y,然後運行腳本Z.

這就是大多數應用程序運行的原理,例如wordpress,blogengine.net;都在這個mannor中運行,發佈時它們提供一個腳本來從頭開始創建模式,另一個腳本從最後發佈的版本更新它。