資料層應用程式 (Data-tier Applications)
幾日前公司 MIS 維運 Server ,一些伺服器暫時關閉,所以測試資料庫也停了;幸好有針對資料結構進行版控,只好利用 docker 直接來建立資料庫,但是有些關聯資料表的建立,由於相依另外的資料表,變成建立順序需要調整;後來測試資料庫維運完成之後,才想到這些資料結構的建立可以利用 DAC 來建立。
DAC 定義
資料層應用程式 (Data-tier Applications) 包含完整的資料庫物件,例如:
- table
- view
- store procedure
依照這些物件定義來進行資料庫的布署,其封裝檔案可以分為兩種格式:
.dacpac
- 僅資料庫結構描述
- 用來佈署、升級資料庫 Schema 與版本
.bacpac
- 資料庫結構描述加上資料 (檔案會較大)
- 用來備份、還原,不能用來升級資料庫(內容包含資料庫中的資料)
其實這些產生出的檔案就是一個壓縮檔,加上 .zip 副檔名,可以看出裡面有許多 XML 檔案,這些檔案來描述資料結構
BACPAC 操作
以下附上環境資訊
- 測試使用資料庫採用 northwind 北風資料庫
- sql server 2017 採用 docker microsoft/mssql-server-linux 的 SQL Express edition
1 | $ systeminfo | findstr /B /C:"OS Name" /C:"OS Version" |
匯出步驟
匯出資料庫 DAC ,將資料庫 Schema 與資料封裝
- 目標資料庫右鍵 –> Tasks –> Export Data-tier Application…
- 簡單的說明介紹
- 匯出設定
- 進階設定,指定匯出項目等
- 設定總結
- 匯出結果
匯入步驟
使用 BACPAC 進行資料與結構匯入
- Databases 資料夾右鍵 –> Import Data-tier Application…
- 匯入介紹
- 匯入設定,選擇 bacpac 檔案位置
- 資料庫設定,設定資料庫名稱與檔案存放路徑等
- 設定項目總結
- 匯入結果