2009-08-10 33 views
1

我知道這是這些板子上經常被問到的問題。通常情況下,問題是如何管理對數據庫進行的更改,然後才能部署它們。最重要的是編寫數據庫腳本並將其保存在sourcecontrol下,然後將其他更新保存爲腳本(例如Tool to upgrade SQL Express database after deployment如何在部署後應用數據庫更新?

我的問題是何時最好應用數據庫更新,在安裝程序中還是新版本首次運行並連接到數據庫時?請注意,這是一個部署給客戶的WinApp,每個客戶都有自己的數據庫。

+0

更新:這是一個客戶端服務器應用程序。 – superartsy 2009-08-10 18:06:54

回答

1

添加到腳本中的一件事:在應用更改之前備份數據庫(或至少更改表)。

0

作爲一個用戶,我想我寧願在安裝過程中發生這種情況,並進一步說安裝程序可以在發生故障時自動回滾。我的想法是,如果我正在安裝更新,我想知道更新何時完成,確實已完成並已成功。我不想在下次運行時發出消息,通知我某些事情失敗了,並且可能會丟失我的所有數據。我假設一個系統管理員可能也會喜歡安裝時間反饋(當然,如果你的web應用程序不是將被安裝在網絡上的話,這並不重要)。另外,正如ראובן所說,備份數據庫將是一個不錯的方便。

0

你沒有多說關於應用程序的體系結構,但是由於涉及到安裝程序,我認爲它是一個客戶機/服務器應用程序。

如果您有一個服務器安裝程序,那就是您要放置它的位置,因爲數據庫結構只會更改一次。由於客戶端安裝程序需要知道有關更改,因此有辦法檢測數據庫版本更改並且舊客戶端能夠自動從服務器下載客戶端更新並應用它,這將非常有用。

如果你只有一個客戶端安裝程序,我仍然認爲最好把它放在那裏(也許作爲一個自定義操作來觸發可執行文件更新數據庫)。但它確實沒有關係,因爲從概念上講,新版本的一個安裝者或首次使用者將不得不引發對數據庫的更改。數據庫的更改將把數據庫結構鎖定在數據庫上,因此,實際上每個人都必須從系統中啓動,以便應用數據庫更新。

當然,如果不是客戶端服務器,這是全部BS。

相關問題