首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

透過 VS 2010 + SVN 實現 SQL Server 資料庫版本控制——Schema Compare 雙向同步實戰

     編輯:關於SqlServer

資料庫結構變更若無版控,極易造成環境不一致、回滾困難。利用 VS 2010 Database Project (SQL Server Database Project) 搭配 Subversion (SVN),即可將結構定義檔案化、版本化、自動化部署。

核心工具鏈

  • VS 2010 (或 2012/2013/2015/2017/2019 SSDT) → 專案類型 SQL Server 2008 Database Project (對應目標版本)。
  • Schema Compare (資料 → 結構描述比較) → 雙向同步:
     - Database → Project:匯入現有資料庫結構。
     - Project → Database:產生部署腳本 / 直接發布。
  • VisualSVN Server (伺服器端) + AnkhSVN (VS 整合外掛) → 版本控制。

建立資料庫專案並匯入現有結構

  1. File → New → Project → Database → SQL Server → SQL Server 2008 Database Project,命名 AdventureWorksDB。
  2. 新建資料庫專案
  3. 專案右鍵 → Import → Database Objects and Settings。
  4. 匯入資料庫物件
  5. 精靈選擇來源連線 (AdventureWorks2012)、匯入選項 (Schema、Permissions、Extended Properties 等) → 完成。專案將產生數百個 .sql 檔案,每個物件一檔。

加入版本控制 (AnkhSVN)

  1. 方案總管右鍵方案 → Add Solution to Subversion。
  2. 輸入 Repository URL (如 https://svn-server/svn/DBProjects/AdventureWorksDB),認證送出。
  3. 後續開發:修改專案中 .sql 檔 → Commit;團隊成員 Update 取得最新結構。

日常工作流:Schema Compare 雙向同步

場景操作方向步驟
開發機修改表結構 (SSMS)Database → ProjectVS 選單 Data → Schema Compare → Source: 資料庫連線, Target: 專案 → Compare → 勾選變更 → Update 更新專案檔 → Commit。
專案中調整索引/欄位Project → DatabaseSchema Compare → Source: 專案, Target: 目標資料庫 (Dev/QA/Prod) → Generate Script 產生部署 .sql → 審核 → 執行 / 直接 Update 發布。
新環境建立Project → Database專案右鍵 Deploy (需先設定 Target Connection String) → 自動建立/更新完整結構。

進階:預部署/後部署腳本

  • 專案資料夾 Scripts → Pre-Deployment:資料遷移、關閉限制、備份關鍵表。
  • Post-Deployment:種子資料 (MERGE INTO)、啟用限制、重建統計資料。
  • 部署時自動包含在產生腳本中,確保資料與結構同步。

優勢總結

  • 結構變更可追溯、可比較、可回滾 (SVN 歷史)。
  • 部署腳本自動產生,減少手寫 SQL 錯誤。
  • 支援多環境參數化 (專案屬性 → Debug/Release 不同連線字串)。
  • 整合 CI/CD (Azure DevOps / Jenkins) 實現資料庫持續部署。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved