共用方式為


建置和部署資料庫到隔離的開發環境

在一個「隔離開發環境」(Isolated Development Environment) 中 (通常稱為沙箱),您和小組成員可以更新、建置和部署資料庫程式碼,而不必引入會造成互相衝突的變更。 在您產生測試資料並執行「資料庫單元測試」(Database Unit Test) 後,可以將您的程式碼版本部署至開發用或測試用伺服器,在此將您的程式碼與其他開發人員的程式碼合併。 在您部署「資料庫專案」(Database Project) 前,要根據您是否要將專案部署至隔離的開發環境來設定屬性,而不是根據開發用或實際執行伺服器而定。

設定您的資料庫專案以進行本機部署

當您設定部署屬性時,可以識別「目標」(Target) 資料庫連接、.deploymentconfig 檔案,以及 .sqlcmdvars 檔案,這些都是您的隔離開發環境特定的。 在資料庫專案的部署屬性中,您可以為隔離開發環境進行設定,讓這些設定與資料庫專案中儲存的部署設定不同。 因此,您可以提供一個目標資料庫連接至您的隔離開發資料庫、一個不同的 .deploymentconfig 檔案,以及不同的 .sqlcmdvars 檔案。

部署組態詳細資料

在您將專案部署至隔離開發環境時,應解決下列問題:

  • 您可能要使用資料庫專案的定序,因為大部分的情況下,您的開發環境應該要符合目標開發用或實際執行環境。

  • 由於沒有必須保留的實際執行資料,因此您可以每次都從頭重建資料庫。

  • 您可能要部署資料庫屬性,因為您要設定開發環境以符合目標開發用或實際執行環境。

  • 不要備份資料庫,因為這麼做會增加部署的額外負荷,而且如果您每次部署時都重新建立資料庫,那麼備份完全沒有任何好處。

  • 如果因為您產生測試資料而不是使用實際執行資料而可能發生資料遺失,就不要封鎖部署。 如果您不想讓正在進行的變更造成資料遺失,就要封鎖部署以測試是否會發生這種情形。

  • 不要對位於資料庫中但不在資料庫專案內的物件產生 DROP 陳述式。 您可能暫時將物件排除在尚未完成的資料庫專案之外,或目標資料庫中有您想保留的物件原型 (Prototype)。

SQL 命令變數

當您部署到隔離開發環境時,應該將變數調整到適用於該環境的資料值。 例如,您可能需要開發環境中的 Service Broker 和服務憑證的值,不同於開發用或實際執行環境中的值。 為您的隔離部署環境指定不同的 .sqlcmdvars 檔案,您就可以避免在變更部署目標時,變更這些變數的值。 這麼做也可以避免必須根據 MSBuild 變數來定義 .sqlcmdvars 檔案,以獲得組態特定值。 您要部署的每一個組態,可以有一個不同的 .sqlcmdvars 檔案。

部署伺服器專案

當您部署資料庫專案時,會為該資料庫部署物件與設定。 當您部署「伺服器專案」(Server Project) 時,會部署主要資料庫中所定義的物件,但伺服器設定不會改變。 伺服器設定可以忽略,或者,您可以確認目標伺服器上部分或所有設定的值符合您在伺服器專案中指定的值。

除了處理設定的方法不同之外,伺服器專案的部署程序和資料庫專案的部署程序相同。

部署角色

您必須將資料庫中所使用的角色,部署至您部署資料庫的所有伺服器。 但是,在您的開發環境中,您可以限制必須與每一個角色相關聯的使用者個數。 通常,每一個角色至少要有一個使用者以供測試,但是不必部署一整組使用者給隔離開發環境。

命令列部署

在未安裝 Visual Studio的電腦上,也可以用命令列部署資料庫專案,只要這台電腦上有安裝以下軟體:

  • Microsoft .NET Framework 4 版

  • SQL Server 管理物件 (SMO)

    有安裝 SQL Server 的電腦上,都應該安裝這些物件。

除了以上的必要軟體之外,您也必須將下列檔案轉移至這部電腦,也許您可以先將檔案複製到通用序列匯流排 (USB) 磁碟機:

  • 資料庫專案的建置輸出 (Debug 或 Retail)

  • Visual Studio 的 Deploy 資料夾之內容

    這個資料夾通常位於 [Program Files]\VSTSDB\Deploy。

  • SQL Server Compact Edition 的組件

在您安裝了必要條件並轉移檔案後,可以將資料庫專案 (格式為 .dbschema 檔案) 部署至目標資料庫。

參考資料

您可以將陳述式加入至資料庫專案中的部署後指令碼,在一個或多個表格中填入參考資料。 如需詳細資訊,請參閱部署資料庫時將參考資料加入到資料表

如果您想要同步處理一個或多個表格,您也可以將已部署的資料庫和內含參考資料的資料庫進行比較。 如需詳細資訊,請參閱使用參考資料庫中的資料比較和同步處理一個或多個資料表中的資料

一般工作

下表列出支援此案例之一般工作的說明,以及詳細資訊的連結,這些資訊可幫助您成功完成這些工作。

工作

支援主題

開始使用建置和部署:在您設定、建置及部署第一個資料庫專案前,您可能想要先了解如何在小組環境中使用資料庫專案。 您也可以更加了解建置與部署程序,以及了解控制專案建置與部署的所有屬性與設定。

從實際操作中學習:完成入門逐步解說,您就可以迅速了解整個流程,從建立隔離開發環境,一直到建立基準和執行反覆開發。

只部署已完成的物件:您可以排除內含您尚未準備部署或測試的「資料庫物件」(Database Object) 之定義的檔案。

設定專案以供建置:您可以進行一些可控制如何建置資料庫專案的設定。 例如,您可以指定警告應視為錯誤。

設定專案以進行部署:

  • 您可以將組態與目標資料庫、包含部署詳細資訊的檔案,以及包含影響部署之變數的檔案產生關聯,如此就能為任何組建組態設定部署。

  • 您可以修改內含部署詳細資料 (.deploymentconfig) 的檔案,以控制部署的詳細資料。

  • 您可以自訂變數,在每個部署中使用不同的 Service Broker 或服務憑證。

  • 您可以控制當您部署專案時,資料庫及伺服器屬性是否已更新,以及這些屬性應具備的值。

填入參考或查詢表格:當您部署資料庫專案時,可以新增參考資料至表格。 您可以為包含的資料可能不常變動的資料表執行這個動作,例如託運人資訊。

建置您的資料庫專案:您可以在 Visual Studio 中,或使用 MSBuild 從命令提示字元來建置資料庫專案。 您可以設定錯誤或警告的數目上限,如果您要忽略也可以設定隱藏。 您可以在資料庫專案建置前或建置後立即執行動作,當做建置的一部分。

部署您的資料庫專案:您可以使用 MSBuild 或使用命令列工具 VSDBCMD 來更新目標資料庫或伺服器,在 Visual Studio 中部署資料庫專案。 在您將變更簽入至資料庫專案前,也要測試完整的 Team Build 及部署是否完成。

疑難排解問題:您可以學習如何疑難排解大部分常見的建置和部署問題,例如當您重新命名 SQL Common Language Runtime (CLR) 專案和組件時發生的問題。

後續步驟

在您簽入變更之前,您應該考慮執行「資料庫單元測試」(Database Unit Test),以確認資料庫是否如預期般運作。 您可以撰寫其他測試,以確認任何您已撰寫的程式碼。 或者,您可以部署專案並在執行測試時產生測試資料。 如需詳細資訊,請參閱使用單元測試驗證資料庫程式碼

相關案例

建置和部署資料庫到開發用或實際執行環境

開始以小組開發資料庫

開始以小組開發參考其他資料庫的資料庫

開始以小組開發參考共用伺服器物件的資料庫

開始以小組開發參考 SQLCLR 物件的資料庫

請參閱

概念

建立和修改資料庫與伺服器物件

開始進行小組資料庫開發