對於數據庫和GUI都很難「一鍵式」安裝。但是,您可以使用版本控制或時間戳部署項目來將這些項目保存在一起。源代碼控制這些項目能夠回滾並根據需要調出您需要的版本。有一些方法可以將版本號或時間戳與GUI組件相關聯,以將部署作爲一個單元進行關聯。例如,您可以將您的更改數據庫腳本(FooTable v100,v101,v102)的版本或時間戳記打印到源代碼管理中。將各種關聯存儲在某種類型的配置數據庫中。在我的工作中,我們使用SharePoint列表逐項列表部署,並使用SharePoint列表項引用來一起引用特定更改的所有不同項目。由於所有東西都是受控的,因此如果需要,我可以輕鬆找出並檢索部署項目以進行特定更改。
您可以使用使用諸如
數據源= myServerAddress可信連接的連接字符串;初始目錄= MyDatabase的;集成安全性= SSPI;
所以你不需要爲每個環境嵌入不同的用戶名和密碼。您可以將服務器和數據庫名稱存儲在每臺各自的環境服務器上的machine.config或web.config中。
所以在開發中,ConnectionString的可能是
數據源= myDevServer;初始目錄= myDevDataBase;集成安全性= SSPI;
上測試:
數據源= myTestServer;初始目錄= myTestDataBase;集成安全性= SSPI;
如果將它們存儲在服務器上的配置文件中,則不需要在包中對其進行更改。
如果您確實需要將該配置與包一起存儲,則應該使用技術根據您要部署的環境動態更改設置。例如,您可以使用環境變量來確定您處於哪個環境,以便知道要運行哪個代碼以動態更改配置。或者代替代碼,您可以使用XSLT來更改XML配置。您還可以在MSI中設置自定義操作以在安裝/卸載上運行。您可以在代碼中添加代碼以根據需要更改配置。
同樣,數據庫腳本本身可以根據您部署的環境進行更改。您可以使用SQLCMD變量動態更改SQL代碼(特別是3和4部分命名引用中的數據庫和服務器名稱,即如果替換devlinkserver和devdb,則devlinkserver.devdb.dbo.foo可以更改爲testlnkserver.testdb.dbo.foo與SQLCML變量)。使用SQLCMDs腳本改變變量值需要根據您正在部署的環境:
如果@@ SERVER = 'somedevdbserver'
SET:linkserver = 'DevDBServer'
如果@@服務器= 'sometestserver'
SET:linkserver = 'testDBServer'
等等
總之,保持儘可能多的您可以在所有環境中進行相同的配置。使用上述各種技術根據需要爲每個環境中需要不同的部分動態更改配置。
來源
2012-04-29 05:16:52
TyT
如果你正在創建一個電影預訂系統,你不應該在某個地方(例如在服務器上)只有一個SQL Server實例,並讓所有客戶端應用程序通過網絡指向它嗎?沒有必要在每臺機器上安裝SQL Server。 – Polynomial 2012-04-28 10:34:37
您是否檢查過新安裝的計算機上正在運行的SQL服務? – 2012-04-28 10:51:58
它從現在開始獲取服務器/實例名稱?配置文件是通常的方式。數據庫所在的代碼無關緊要,除非知道它在哪裏。這就是說,有一些潛在的其他問題部署明智與你在做什麼。 – 2012-04-28 10:54:38