在軟件開發過程中,版本控制是一個廣為人知的概念。因為一個項目可能會需要不同角色人員的參與,通過使用版本控制軟件,可以使得項目中不同角色的人並行參與到項目當中。源代碼控制使得代碼可以存在多個版本,而不會將代碼庫變得混亂,典型的場景包括Bug修復、添加新功能、版本整合等。
雖然在開發層面的版本控制軟件已經非常成熟,但目前國內還沒有專門針對數據庫層面的版本控制軟件來幫助不同角色的人員在數據庫層面進行團隊協作、變更代碼管理以及對數據庫的變更進行查看和比對。在數據庫層面版本控制工具的缺乏可能會出現如下場景:
無法在數據庫層面進行團隊協作:開發人員A對存儲過程的修改導致開發人員B創建的存儲過程被覆蓋,從而無法比對和追蹤
開發人員-開發DBA-測試人員難以協作:SVN等版本工具是基於文件的,很難在數據庫層面進行版本控制
數據庫發生的變更難以追蹤:現有的技術無法追蹤由誰、在什麼時間、對數據庫修改了什麼,當發生由數據庫引起的報錯或性能下降時,難以排查
無法記錄對數據庫變更的過程資產:數據庫變更的歷史記錄只有數據庫運維人員了解,當該相關人員離職或調崗,這些過程資產難以繼承
難以審計數據庫:現有的數據庫審計功能往往依賴於日志,對性能造成很大影響。
SQL腳本無法有效管理:現有的做法往往是將SQL以文件形式保存,無法有效管理和共享
無法查看被加密的數據庫對象:當需要對加密的數據庫對象進行修改時,如果無法找到對象定義的原始記錄,則必須重寫該對象
SVN建立和使用復雜:SVN使用流程對於數據庫人員過於繁瑣,為數據庫人員增加了額外的工作負擔
由於數據庫是整個業務應用的核心,上述問題無論是在開發環境還是在生產環境如果得不到有效的解決,會造成生產力低下、過程資產無法得到管理、數據庫審查無法進行、難以排查由數據庫變更導致的問題等情況。
下面來介紹一下Source Safe for SQL Server如何解決該類問題。
軟件的官網下載完Source Safe的安裝包後一路下一步,安裝完成後打開Management Studio,在需要加入到源代碼控制器的某個數據庫服務器上右鍵,在彈出菜單中選擇“添加數據庫到版本控制”,如圖1所示。
圖1.將數據庫添加到版本控制
然後設置相關的選項,如圖2所示。
圖2.添加數據庫到版本控制相關設置