逐步解說:建立隔離資料庫開發環境

在本逐步解說中,您將設定「隔離開發環境」(Isolated Development Environment),讓每位資料庫開發人員可以進行和測試變更,而不會影響小組的其他成員。 隔離資料庫開發環境是以「資料庫專案」(Database Project) 為基礎,其中包含實際執行資料庫所有物件的定義。 您會建立專案、從實際執行資料庫匯入資料庫「結構描述」(Schema),然後設定專案。 接下來,您要建立「資料產生計劃」(Data Generation Plan)。 最後,對資料庫專案和所有關聯檔案進行版本控制,以便與小組共用。

您在本逐步解說中擔任系統管理角色,負責定義小組中每位開發人員將用來執行開發工作的環境。 每位開發人員在完成工作項目之前,會使用 [資料產生器] 將實際可用但虛構的資料放入更新的結構描述,然後執行資料庫單元測試,驗證結構描述變更是否如預期運作。 當工作項目完成時,開發人員再將變更簽入版本控制,以供小組其他成員使用。 藉由在簽入變更之前先執行測試,小組的每位成員便能將對整體成果造成的風險降至最低。

逐步解說將說明的工作包括:

  1. 如何使用 [新增資料庫專案精靈] 來建立資料庫專案。

  2. 如何執行 [新增資料庫專案精靈] 來匯入資料庫結構描述、指定資料庫專案屬性,以及指定建置和部署屬性。

  3. 如何檢查匯入作業的結果。

  4. 如何將專案加入至版本控制。

必要條件

您必須先安裝好 Visual Studio,而且能存取 SQL Server 2008 的 AdventureWorks2008 範例資料庫。 若要將專案加入至版本控制,您必須已安裝版本控制軟體,例如 Visual Studio Team Foundation Server。

如需如何安裝 AdventureWorks2008 範例資料庫的詳細資訊,請參閱 CodePlex 網站上的 Microsoft SQL Server 產品範例網頁 (英文)。

您也可以使用 SQL Server 2008 R2 和 AdventureWorks2008R2 資料庫。 本逐步解說會指出一些差異,而且您必須針對 AdventureWorks2008R2 執行不同的動作。

若要建立資料庫專案

  1. 在 [檔案] 功能表中,指向 [新增],然後按一下 [專案]。

    [新增專案] 對話方塊隨即出現。

  2. 展開 [已安裝的範本] 底下的 [資料庫] 節點,然後按一下 [SQL Server]。

    注意事項注意事項

    如果您正在使用 Visual Studio Professional,請查看 [已安裝的範本],依序展開 [資料庫] 節點、[SQL Server] 節點,然後按一下 [進階]。

  3. 按一下範本清單中的 [SQL Server 2008 精靈]。

  4. 在 [名稱] 中輸入 AdvWorksSandbox。

  5. 接受預設 [位置] 和 [方案名稱]。

  6. 選取 [為方案建立目錄] 核取方塊 (若尚未選取)。

  7. 清除 [加入至原始檔控制] 核取方塊 (若尚未清除),然後按一下 [確定]。

    [新增資料庫專案精靈] 隨即出現。

    接下來將使用精靈設定資料庫專案,並匯入初始資料庫結構描述。

若要設定專案並匯入資料庫結構描述

  1. 閱讀完 [歡迎] 頁面之後,按 [下一步]。

  2. 確認已選取 [用來管理使用者定義資料庫之變更的資料庫專案]。

  3. 確認已選取 [SQL 指令碼檔] 底下的 [依結構描述],然後按 [下一步]。

    重要事項重要事項

    專案的組織方式一旦建立就無法變更。

  4. 在 [設定資料庫選項] 頁面的 [指定在資料庫專案中建立物件時所使用的預設結構描述] 中,輸入 HumanResources,然後按 [下一步]。

    注意事項注意事項

    您可以在建立專案之後變更這些選項。 如需詳細資訊,請參閱 HOW TO:設定資料庫專案的資料庫屬性

  5. 選取 [匯入資料庫結構描述] 頁面上的 [匯入現有結構描述] 核取方塊。

  6. 在 [來源資料庫連接:] 清單中,按一下對應到伺服器和 AdventureWorks2008 或 AdventureWorks2008R2 資料庫的連接。 如果該連接已經不存在,請按一下 [新增連接] 建立連接。 如果沒有指定連接,將會建立資料庫專案,但不會匯入任何結構描述。

    注意事項注意事項

    如果資料庫專案尚未包含資料庫物件,可以稍後再匯入資料庫結構描述。 如需詳細資訊,請參閱 HOW TO:匯入資料庫物件和設定

  7. 接受匯入物件和設定的預設選項,然後按 [下一步]。

  8. 在 [設定組建和部署] 頁面上,按一下 [目標連接] 中的 [編輯] 按鈕,然後指定與您想要用來建立開發環境之資料庫伺服器的連接。

  9. 在 [目標資料庫名稱] 中,輸入 AdvWorksSandbox (若尚未指定)。

  10. 在 [預設部署定序:] 清單中,按一下 [使用我的專案定序]。

    這個步驟會使部署引擎在將專案與目標資料庫進行比較時,使用資料庫專案的定序。

  11. 清除 [如果可能發生資料遺失,則封鎖累加部署] 核取方塊。

    由於隔離開發環境只會包含產生的測試資料,因此可以允許資料遺失的情形。

  12. 按一下 [完成] 建立資料庫專案並匯入資料庫。

    您的資料庫專案隨即建立。 這個程序可能需要幾分鐘的時間。

  13. 檢閱摘要結果,然後按一下 [完成]。

    在背景中,Visual Studio 仍在分析資料庫結構描述。 狀態列中會出現一則訊息,指出完整分析資料庫結構描述之前必須完成的作業數目。

    接著,您將檢查已建立的資料庫專案。

若要檢查產生的專案

  1. 在 [方案總管] 中,展開 [AdvWorksSandbox] 節點,然後展開 [結構描述物件] 子節點。

  2. 瀏覽在階層架構中 [結構描述物件] 節點底下的子節點。

    [方案總管] 包含定義物件的檔案,該物件位於匯入物件之來源資料庫的結構描述中。

  3. 按一下 [檢視] 功能表上的 [資料庫結構描述檢視]。

  4. 展開 [結構描述檢視] 中的 [AdvWorksSandbox] 節點。

  5. 瀏覽在階層架構中 [AdvWorksSandbox] 節點底下的子節點。

    [結構描述檢視] 包含物件,這些物件是在 [方案總管] 出現的檔案中定義的。

  6. 按一下 [方案總管] 中的 [AdvWorksSandbox] 節點。

  7. 按一下 [專案] 功能表上的 [AdvWorksSandbox 屬性]。

  8. 按一下 [屬性] 頁上的 [部署] 索引標籤。

    注意事項注意事項

    您在設定 [我的專案設定] 時所做的任何部署設定變更都會儲存至專案檔 (.dbproj),並簽入至原始檔控制中。 在後續的逐步解說中,您將會為特定開發人員的環境進行設定。

  9. 在 [目標資料庫名稱] 中,輸入 AdvWorksSandbox (若尚未指定)。

  10. 在 [檔案] 功能表上,按一下 [儲存選取項目]。

    每位開發人員都會指定自己想要裝載資料庫複本之資料庫伺服器的連接字串。

若要將專案部署到隔離開發環境

  1. 按一下 [方案總管] 中的 [AdvWorksSandbox] 節點。

  2. 若要將這個專案部署至執行原始 AdventureWorks2008 或 AdventureWorks2008R2 資料庫的相同資料庫伺服器,您必須變更檔案名稱以避免衝突。 若要部署至不包含原始 AdventureWorks2008 或 AdventureWorks2008R2 資料庫的伺服器,可以移至步驟 7。

  3. 依序展開 [結構描述物件] 資料夾、[資料庫層級物件] 資料夾、[儲存體] 資料夾和 [檔案] 資料夾。

    三個檔案隨即顯示:AdventureWorks2008_Data.sqlfile.sql、AdventureWorks2008_Log.sqlfile.sql 和 FileStreamDocuments.sqlfile.sql。 如果您正在使用 SQL Server 2008 R2,就會顯示下列檔案:AdventureWorks2008R2_Data.sqlfile.sql、AdventureWorks2008R2_Log.sqlfile.sql 和 FileStreamDocuments2008R2.sqlfile.sql。

    注意事項注意事項

    舊版 AdventureWorks 不會使用 FILESTREAM。 如果您匯入舊版 AdventureWorks,可以跳至步驟 7。

  4. 按兩下 FileStreamDocuments.sqlfile.sql

    檔案隨即在 Transact-SQL 編輯器中開啟。

  5. 將此檔案的定義修改為下列內容:

    ALTER DATABASE [$(DatabaseName)]
        ADD FILE (NAME = [FileStreamDocuments], FILENAME = '$(DefaultDataPath)SandboxDocuments') TO FILEGROUP [DocumentFileStreamGroup];
    

    如果您正在使用 AdventureWorks2008R2,就應該改用下列定義:

    ALTER DATABASE [$(DatabaseName)]
        ADD FILE (NAME = [FileStreamDocuments2008R2], FILENAME = '$(DefaultDataPath)SandboxDocuments') TO FILEGROUP [Document2008R2FileStreamGroup];
    
  6. 在 [檔案] 功能表上,按一下 [全部儲存]。

  7. 按一下 [專案] 功能表上的 [AdvWorksSandbox 屬性]。

    [專案屬性] 視窗隨即出現。

  8. 按一下 [部署] 索引標籤。

  9. 在 [部署動作] 清單中,按一下 [建立部署指令碼 (.sql) 並部署到資料庫]。

    重要事項重要事項

    如果未變更部署動作,則只會產生部署指令碼,而不會部署任何內容至目標資料庫。

  10. 按一下 [建置] 功能表上的 [部署 AdvWorksSandbox]。

    資料庫專案的建置指令碼隨即產生,然後部署到您選擇裝載隔離開發環境的資料庫伺服器。 當部署完成時,[部署成功] 會出現在 [輸出] 視窗中。

    您已定義資料庫專案,並從實際執行資料庫匯入結構描述。 您現在可以將方案放到版本控制下,以供團隊使用。

將專案提供給小組使用

若要將專案加入至版本控制

  1. 按一下 [方案總管] 中的 [AdvWorksSandbox] 節點。

  2. 指向 [檔案] 功能表上的 [原始檔控制],然後按一下 [將方案加入至原始檔控制]。

    這時您會與安裝的版本控制軟體互動。 本逐步解說提供將專案加入 Team Foundation Server 的步驟。 如果要使用不同的版本控制軟體,請以同等的步驟取代。 如果使用 Team Foundation Server,[連接到 Team Foundation Server] 對話方塊隨即出現。

  3. 在 [連接到 Team Foundation Server] 中,按一下伺服器,以找到要加入方案的 Team 專案。

    注意事項注意事項

    如果沒有可以加入資料庫專案的 Team 專案,請參閱計劃和追蹤專案

  4. 在 [Team 專案] 中,按一下要加入資料庫專案的 Team 專案,然後按一下 [確定]。

    [將方案 AdvWorksSandbox 加入至原始檔控制] 對話方塊隨即出現。

  5. 按一下 [確定] 接受預設值。

    您的資料庫專案及其包含的檔案隨即加入版本控制。 一開始仍為簽出狀態。 您必須簽入專案和檔案,才能讓其他小組成員存取。

  6. 指向 [檢視] 功能表上的 [其他視窗],然後按一下 [暫止的變更]。

    [暫止的變更] 視窗隨即出現。

  7. 在 [註解] 欄位中輸入 Initial database project creation, schema import, and data generation。

  8. 在 [暫止的變更] 視窗中,按一下工具列上的 [簽入]。

    簽入資料庫專案和它所包含的檔案時,[簽入進度] 對話方塊隨即出現。 [方案總管] 中的圖示會更新,表示檔案已簽入版本控制。

後續步驟

當資料庫專案簽入版本控制時,下一個步驟就是在小組開始變更專案之前,先建立品質保證機制。 在下一個入門逐步解說 (逐步解說:建立隔離開發環境的基礎) 中,您將建立單元測試,然後在隔離資料庫開發環境中建置、部署和執行這些測試。

請參閱

工作

HOW TO:建立資料庫和伺服器專案

概念

開始進行小組資料庫開發

資料庫建置與部署概觀

資料庫專案設定概觀

變更記錄

日期

記錄

原因

已加入 SQL Server 2008 R2 和 AdventureWorks2008R2 的支援。

SP1 功能變更。