逐步解說:在隔離的開發環境中執行反覆資料庫開發
在逐步解說:建立隔離資料庫開發環境中,您是以資料庫管理員的身分建立「資料庫專案」(Database Project),並從實際執行伺服器 (Production Server) 匯入「結構描述」(Schema) 和「資料庫物件」(Database Object) 定義。 在第二個逐步解說中,您則建立了「資料庫單元測試」(Database Unit Test),以驗證現有功能並建立全新的基礎。
在這個逐步解說 (本系列的第三個,也是最後一個) 中,您會執行常見的反覆開發工作:重新命名兩個資料庫資料行。 您會在「隔離開發環境」(Isolated Development Environment) 中做這些變更,直到準備好共用變更為止,這對小組其他成員的風險會最低。
本逐步解說所述的工作包括下列各項:
如何使用「資料庫重構」(Database Refactoring) 重新命名資料行,縮短更新資料行的所有參考需要的時間,並降低發生錯誤的機率。
執行「資料庫單元測試」,驗證變更並不會影響現有的功能。
將變更簽入版本控制,提供給小組其他成員使用。
必要條件
您必須先安裝好 Visual Studio Premium 或 Visual Studio Ultimate,而且能存取 SQL Server 2008 的 AdventureWorks2008 範例資料庫。 此外,這個逐步解說假設您已經完成了逐步解說:建立隔離資料庫開發環境和逐步解說:建立隔離開發環境的基礎。
重新命名資料庫資料行
常見的開發工作包括重新命名資料庫物件。 在這個逐步解說中,您會將 [HumanResources].[Employee] 資料表中的 BusinessEntityID 資料行重新命名為 BusinessEntityNumber。 有數個外部索引鍵和預存程序參考了 BusinessEntityID 資料行。 若要手動進行變更,就必須修改多個檔案。
在做任何修改之前,請先確定資料庫專案是最新的版本。
若要取得資料庫專案的最新版本
在 [Team 總管] 中,展開包含資料庫專案的 Team 專案節點。
按兩下 [原始檔控制] 節點,開啟 [原始檔控制總管]。
在 [原始檔控制總管] 中,以滑鼠右鍵按一下您的資料庫專案,然後按一下 [取得最新的版本]。
包含資料庫專案的最新版本方案便會擷取至您的電腦上。
若要將 BusinessEntityID 重新命名為 BusinessEntityNumber
如果 AdvWorksSandbox 方案已在 [方案總管] 中開啟,請跳至步驟 4。
在 [檔案] 功能表上,指向 [開啟],並按一下 [專案/方案]。
[開啟專案] 對話方塊隨即出現。
按一下 AdvWorksSandbox 方案,然後按一下 [開啟] (這個方案的預設位置是在 My Documents\Visual Studio 2005\Projects\AdvWorksSandbox)。
AdvWorksSandbox 方案即會在 [方案總管] 中開啟。
開啟 [檢視] 功能表,然後按一下 [結構描述檢視]。
在 [結構描述檢視] 中,依序展開 [AdvWorksSandbox] 節點、[HumanResources] 結構描述和 [Tables] 資料夾。
在 [Tables] 資料夾中,展開 [Employee] 資料表,然後展開 [Columns] 資料夾。
以滑鼠右鍵按一下 [BusinessEntityID] 資料夾,然後指向 [重構],再按一下 [重新命名]。
[重新命名] 對話方塊隨即出現,其中會顯示現有資料行名稱。
在 [新名稱] 中輸入 BusinessEntityNumber。
選取 [更新含有警告或錯誤的結構描述物件中的參考] 核取方塊。
如果未選取 [預覽變更] 核取方塊,請選取並按一下 [確定]。
[ 預覽變更 - 重新命名] 對話方塊隨即出現,其中會顯示專案中的項目,這些項目都參考了正在重新命名的資料行。
按一下其中一項變更。
變更的詳細資料會出現在 [預覽變更] 中。
檢視變更之後,按一下 [套用] 套用變更。
修改的任何檔案會從版本控制簽出。
您可以在 [暫止的變更] 視窗中檢視暫止的變更。 下列檔案應會出現在 [暫止的變更] 視窗中:
Employee.table.sql
ufnGetContactInformation.function.sql
uspGetEmployeeManagers.proc.sql
uspGetManagerEmployees.proc.sql
uspUpdateEmployeeHireInfo.proc.sql
uspUpdateEmployeeLogin.proc.sql
uspUpdateEmployeePersonalInfo.proc.sql
FK_EmployeeDepartmentHistory_Employee_BusinessEntityID.fkey.sql
FK_EmployeePayHistory_Employee_BusinessEntityID.fkey.sql
FK_Employee_Person_BusinessEntityID.fkey.sql
FK_JobCandidate_Employee_BusinessEntityID.fkey.sql
PK_Employee_BusinessEntityID.pkey.sql
vEmployee.view.sql
vEmployeeDepartment.view.sql
FK_Document_Employee_Owner.fkey.sql
FK_PurchaseOrderHeader_EmployeeID.fkey.sql
FK_SalesPerson_Employee_BusinessEntityID.fkey.sql
vSalesPerson.view.sql
vSalesPersonSalesByFiscalYears.view.sql
AWGenPlan.dgen
執行資料庫單元測試
進行任何變更之後以及將應用程式簽入版本控制之前,請先執行資料庫單元測試,確定應用程式仍能正常運作,然後再與小組共用這些變更。
若要執行資料庫單元測試以找出任何可能的問題
指向 [測試] 功能表上的 [視窗],然後按一下 [測試檢視]。
[測試檢視] 視窗會列出數項測試。 預設會建立名為 ManualTest1 和 TestMethod1 的測試。 名為 dbo_ufpLeadingZeroTest 的測試是您在前一個逐步解說中建立的測試。
選取 [dbo_ufpLeadingZeroTest]、按一下滑鼠右鍵,然後按一下 [執行選取範圍]。
檢視 [測試結果] 視窗中的結果。
資料庫專案會部署至隔離的開發環境,接著產生測試資料,最後測試執行並成功。
將資料庫專案與實際執行環境比較
您可以針對更新的資料庫專案和實際執行資料庫,比較兩者的結構描述有何不同。 由於只比較結構描述,而不是更新其中任一個,因此可以指定任一個做為比較的來源或目標。
若要將資料庫專案結構描述與實際執行資料庫比較
指向 [資料] 功能表上的 [結構描述比較],然後按一下 [新增結構描述比較]。
[新增結構描述比較] 對話方塊隨即出現。
接受 [來源結構描述] 的預設值。
這時指定的是資料庫專案 AdvWorksSandbox。
在 [目標結構描述] 的 Database 清單中,按一下最初匯入資料庫結構描述之來源 AdventureWorks 資料庫的連接,然後按一下 [確定]。
結構描述便會進行比較。 兩者的差異之處應該只有您在這個逐步解說中所做的變更。
瀏覽結構描述之間的差異。 完成時關閉 [結構描述比較] 視窗。
您現在可以提供變更給小組共用。
簽入變更
在確認所有變更都已準備好與其他小組成員共用時,即可將變更簽入版本控制。 變更會簽入方案中,這通常包括資料庫專案、單元測試專案,以及任何相關聯的應用程式程式碼和應用程式單元測試。
若要簽入變更以供小組使用
指向 [檢視] 功能表上的 [其他視窗],然後按一下 [暫止的變更]。
[暫止的變更] 視窗隨即出現。
在 [註解] 中輸入「重新命名的 BusinessEntityID 資料行」。
在 [暫止的變更] 視窗中,按一下工具列上的 [簽入]。
當資料庫專案和它所包含的檔案簽入版本控制時,[簽入進度] 對話方塊隨即出現。 [方案總管] 中的圖示會更新,表示檔案已簽入版本控制。
後續步驟
針對小組要部署到實際執行環境的每個資料庫版本,上面的反覆程序會不斷地執行。 每位開發人員都會在隔離環境中進行變更、測試變更正確與否,然後再將更新簽入版本控制以供小組共用。 如需如何建置及部署資料庫的詳細資訊,請參閱建置和部署資料庫到隔離的開發環境和建置和部署資料庫到開發用或實際執行環境。
注意事項 |
---|
如果您部署至原本用來匯入 AdventureWorks2008 的相同伺服器,可能會顯示錯誤。 如果顯示錯誤,指出您無法建立檔案因為它已經存在,表示您可能在第一個逐步解說中遺漏了某個步驟。 如需詳細資訊,請參閱若要將專案部署到隔離開發環境。 |
若要進一步了解 Visual Studio 的資料庫功能,您可以針對每個功能範圍執行更深入的逐步解說。