logo头像

Edward.K Thinking

開始進行資料庫程式的版控和佈署

在程式開發上,大家都知道要對程式碼進行版控的動作,但是,對於DB的Table Schema或是資料庫物件就不會去做版控。針對這一部份,大都採用傳統方式,用複製的動作進行版控,久而久之就會開始遺失或是缺東缺西。早期要做資料庫物件版控其實也不容易,畢竟,DB是透過Script運作。自從VisualStudio有資料庫專案後,再加上資料庫更新與建制,可以透過.dacpac封裝方式進行部署與差異化更新,因此,要把資料庫納入版控就相對簡單許多。因此,可以開始嘗試使用DB資料庫專案進行開發

首先,在Visual Studio內找到SQL Server專案範本,透過這專案範本就可以建立資料庫專案了

開啟資料庫專案後,就跟開發程式一樣簡單了,可以透過新增項目去開發資料庫的物件。若是,針對舊有的資料庫進行版控,就必須將資料庫匯入資料庫專案中,這樣後續才有辦法產生.dacpac檔案,設計完畢後,就可以透過Visual Stduio進行發行資料庫或是透過SSMS進行佈署。

個人還是喜歡透過SSMS進行操作,畢竟,實務上這一段不一定是開發人員佈署或是一般人都有權限可以直接有權限接觸DB,透過,將封裝檔案透過SSMS佈署或是更新是比較適宜的。所以,當我們設計好的資料庫專案,就可以透過編譯方式產生封裝檔案,若是中間有語法錯誤或是物件不對,就會發生編譯失敗問題。使用SSMS只要選擇佈署精靈就可以很快的佈署完畢了。先選擇要佈署的檔案,和要產生資料庫的名稱

這邊可以看到要佈署的封裝檔案的版本。

若是第一次進行封裝佈署,基本上只要不斷按下一步就可以。而若是在開發專案中有遇到資料庫更新部分,也可以透過封裝檔案進行

把某一個資料表的ID設定為識別碼

並且把封裝版本號修改一下

然後,透過SSMS的更新資料應用程式,進行資料庫物件的更新

當然,還是需要選擇新版本的封裝檔案

基本上若是資料庫的資料表內有資料,都會跳出警告訊息,這部分主要是告知這些異動會動到資料表,有可能會有資料表內的資料遺失風險

下圖也是進行相同的提示,這邊若是不須勾選確認會資料遺失的按鈕,就無法繼續下一步了

按完之後就等他進行更新了

更新完畢後,就可以看到ID已經被設定成識別碼了。

以上透過這樣方式就可以佈署資料庫,同時也可以將資料庫設計納入版控中。但是,個人覺得在第一次進行資料庫佈署時候,透過封裝檔案方式進行佈署,算是非常方便的,且相關機制都可以透過Visual Studio進行管控與紀錄。若是,當我們有針對資料庫內資料表或是相關程式更新時候,尤其是資料表部分,還是建議乖乖去資料表內透過手動或是寫好Script方式進行更新資料表以免真的有資料遺失。雖然,可以備份資料,但是,若是資料表內資料非常的多時候,有時候遺失那些資料還真的找不出來,又要做資料比對又很花時間與精神,而針對原本預存程序或是檢視表的更新,就可以透過封裝檔案進行

上一篇