演练:创建独立数据库开发环境

在本演练中,您将设置独立开发环境,使每位数据库开发人员都可在不影响团队其他成员的情况下进行更改并对更改进行测试。 独立数据库开发环境基于包含成品数据库中所有对象的定义的数据库项目。 您将创建项目,从成品数据库中导入数据库架构,并配置项目设置。 接下来,创建数据生成计划。 最后,将数据库项目及所有关联文件置于版本控制之下,以便与团队共享。

在本演练中,由您定义团队中每位开发人员进行其开发工作所使用的环境,因而您是在担当管理角色。 在每位开发人员完成一个工作项之前,他或她会使用数据生成器将真实但虚设的数据置于更新的架构中,然后运行数据库单元测试以验证架构更改是否按预期效果正常运行。 当完成工作项时,每位开发人员会将其所做的更改签入到版本控制中,团队可以从版本控制中获得这些更改。 通过在签入更改前运行测试,团队的每个成员都在最大程度上降低对整体工作成果构成的风险。

本演练涉及以下任务:

  1. 如何使用**“新建数据库项目向导”**来创建数据库项目。

  2. 如何运行**“新建数据库项目向导”**来导入数据库架构、指定数据库项目属性以及指定生成和部署属性。

  3. 如何检查导入操作的结果。

  4. 如何将项目添加到版本控制中。

系统必备

您必须已安装 Visual Studio,并且具有对 SQL Server 2008 的 AdventureWorks2008 示例数据库的访问权限。 若要将项目添加到版本控制中,必须已经安装了版本控制软件,例如 Visual Studio Team Foundation Server。

有关如何安装 AdventureWorks2008 示例数据库的信息,请参见 Codeplex 网站上的以下页面:Microsoft SQL Server Product Samples(Microsoft SQL Server 产品示例)。

您可以使用 SQL Server 2008 R2 和 AdventureWorks2008R2 数据库。 在本演练中注明存在差异的地方,您必须对 AdventureWorks2008R2 执行不同的操作。

创建数据库项目

  1. 在**“文件”菜单上指向“新建”,再单击“项目”**。

    此时将出现**“新建项目”**对话框。

  2. 在**“已安装的模板”下,展开“数据库”节点,然后单击“SQL Server”**。

    提示

    如果您使用的是 Visual Studio 专业版,请在“已安装的模板”下进行查看,依次展开“数据库”节点和“SQL Server”节点,然后单击“高级”

  3. 在模板列表中单击**“SQL Server 2008 向导”**。

  4. 在**“名称”**中键入“AdvWorksSandbox”。

  5. 接受默认的**“位置”“解决方案名称”**。

  6. 如果**“创建解决方案的目录”**复选框尚未选中,则选择该复选框。

  7. 如果**“添加到源代码管理”复选框尚未清除,则清除该复选框,并单击“确定”**。

    将出现**“新建数据库项目向导”**。

    接下来,您将使用该向导配置数据库项目并导入初始数据库架构。

配置项目并导入数据库架构

  1. 阅读“欢迎”页之后,单击**“下一步”**。

  2. 确认已选中**“用于管理对用户定义的数据库的更改的数据库项目”**。

  3. 在“SQL 脚本文件”下确认已选中**“按架构”,然后单击“下一步”**。

    重要说明重要事项

    创建了项目后,将无法更改其组织方式。

  4. 在**“设置数据库选项”页上的“指定在数据库项目中创建的对象使用的默认架构”中,键入“HumanResources”,然后单击“下一步”**。

    提示

    您可以在创建项目后更改这些选项。 有关更多信息,请参见如何:为数据库项目配置数据库属性

  5. 在**“导入数据库架构”页上,选中“导入现有架构”**复选框。

  6. 在**“源数据库连接”列表中,单击对应于服务器和 AdventureWorks2008 或 AdventureWorks2008R2 数据库的连接。 如果该连接尚不存在,则单击“新建连接”**来创建它。 如果不指定连接,则将创建数据库项目但不导入任何架构。

    提示

    如果数据库项目尚不包含数据库对象,则可在以后导入数据库架构。 有关更多信息,请参见如何:导入数据库对象和设置

  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”**中,单击包含要将解决方案添加到其中的团队项目的服务器。

    提示

    如果没有可将数据库项目添加到的团队项目,请参见计划和跟踪项目

  4. 在**“团队项目”中单击要将数据库项目添加到其中的团队项目,再单击“确定”**。

    将出现**“向源代码管理中添加解决方案 AdvWorksSandbox”**对话框。

  5. 单击**“确定”**接受默认值。

    您的数据库项目及其包含的文件将置于版本控制之下。 最初,它们仍处于签出状态。 只有在您将它们签入后其他团队成员才能访问它们。

  6. 在**“视图”菜单上,指向“其他窗口”,然后单击“挂起的更改”**。

    将出现**“挂起的更改”**窗口。

  7. 在“注释”字段中键入“初始数据库项目创建、架构导入和数据生成”。

  8. 在**“挂起的更改”窗口中,单击工具栏上的“签入”**。

    在签入数据库项目及其包含的文件的过程中,将显示**“签入进度”**对话框。 **“解决方案资源管理器”**中的图标将更新,以表明文件已签入到版本控制中。

后续步骤

将数据库项目签入到版本控制中后,下一步便是制定一些质量保证措施,然后再让团队开始更改。 在下一个介绍性演练演练:为独立开发环境建立基线中,您将创建单元测试并在独立数据库开发中生成、部署并运行它们。

请参见

任务

如何:创建数据库和服务器项目

概念

开始团队数据库开发

数据库生成和部署概述

数据库项目设置概述

修订记录

日期

修订记录

原因

添加了对 SQL Server 2008 R2 和 AdventureWorks2008R2 的支持。

SP1 功能更改。