適用場景
將 SQL Server `.bak` 備份檔轉換為 SQLite 資料庫檔 (`.db`),典型用於桌面應用 (如 EI 5.0) 離線部署、行動端同步、輕量級嵌入式場景。
前置需求
- SQL Server 2005+ (含 Management Studio)
- 目標應用已安裝並可正常登入 (範例為 EI 5.0)
- 應用提供「舊版資料庫遷移工具」或同等匯入機制
操作步驟
階段一:SQL Server 還原備份至新資料庫
- 開啟 SSMS,連線執行個體 (Windows 驗證或 SQL 驗證)
- 右鍵「資料庫」→「新增資料庫」,命名 (如 `EPDM003`),**僅英數字**
- 右鍵新資料庫 →「工作」→「還原」→「資料庫」
- 來源選「裝置」,瀏覽選取 `.bak` 檔,勾選備份集
- 「選項」頁:勾選「覆蓋現有資料庫 (WITH REPLACE)」,復原狀態選「RESTORE WITH RECOVERY」
- 確定執行,等待「還原完成」訊息
階段二:應用遷移工具導入 SQLite
- **備份現有應用資料** (極重要,後續會覆蓋)
- 啟動應用提供的遷移工具 (範例:開始→程式→EI 5.0→舊版 EI 資料庫遷移工具)
- 點選「選擇 SQL Server 資料庫」
- 填寫連線資訊:
- 伺服器:`.` (本機預設執行個體)
- 資料庫:`EPDM003` (階段一建立名稱)
- 使用者/密碼:SQL Server 安裝時設定的帳密
- 點「導入資料」,等待進度條完成,出現「資料導入結束」提示 (密碼會被清空,需重設)
階段三:定位產出的 SQLite 檔案
- 啟動應用,登入視窗點「資料庫設定」
- 查看「SQLite 檔案」路徑欄位 (如 `C:\ProgramData\EI5.0\epdmdb.db`)
- 該 `.db` 檔即為轉換完成的 SQLite 資料庫
關鍵提醒
- **資料庫名稱不可含中文**,否則還原/遷移可能失敗
- 遷移前**務必備份目標應用現有資料**,導入為覆蓋操作
- 密碼清空是遷移工具預設行為,導入後立即修改所有帳號密碼
- SQL Server 版本需相容備份檔來源版本 (無法從高版本還原至低版本)
- 大量資料遷移耗時較久,請預留維護視窗
替代自動化方案 (開發者)
- 使用 `sqlpackage.exe` / `bcp` 匯出 CSV → SQLite `.import`
- ETL 工具 (SSIS、Talend、DataX) 直接 SQL Server → SQLite
- 程式碼層面:Entity Framework Core / Dapper + `Microsoft.Data.Sqlite` 批次寫入
此流程適用於具備遷移工具的成熟桌面應用;無工具時建議採用 ETL 或程式碼層面同步,確保型別對應與資料完整性。