团队环境中的数据库创建和部署概述

更新:2007 年 11 月

借助 Team Edition for Database Professionals,开发团队可以通过使用处于版本控制下的数据库项目来管理数据库更改。如果您承担团队的数据库管理员 (DBA) 角色,则可以创建该项目、从成品服务器导入架构、配置数据库设置,并可制定生成测试数据的计划。准备好和团队的其余成员共享项目及其设置时,可将与该项目关联的文件置于版本控制下。

如果您是对数据库进行处理的开发人员或测试人员,则需从版本控制系统中签出数据库架构的当前版本,并在独立开发环境或沙箱中进行更改。然后,可在独立的环境中测试这些更改,而不会影响团队的其他成员。完成更改后,可将文件重新签入到版本控制系统中,以便可以生成这些文件并将其部署到测试服务器。其他团队成员可以通过与您签入到版本控制中的版本同步来选择您的更改。

设置数据库项目

在团队环境中,如果您扮演 DBA 角色,则需为团队设置项目,然后每个团队成员都可在自己的独立开发环境中使用相同项目开展工作。若要设置项目,通常要执行以下一系列操作:

  1. 创建数据库项目。通常将此步骤与下一个步骤一同执行。

  2. 为数据库项目建立架构。大多数开发工作都从现有数据库开始。在这种情况下,可从该数据库向数据库项目导入架构。在此步骤中,您必须具有源数据库(通常为成品数据库)的访问权限。如果您正在创建数据库,则可能需要与数据库架构师合作开发初始数据库架构。

  3. 设置数据库项目的可以控制生成和部署的属性。此步骤包括设置默认排序规则、设置生成输出路径、指定连接选项和设置目标数据库名称。

  4. 将数据库项目及其内容签入到版本控制中,以供团队访问。

  5. 定义数据生成计划,以便允许每个团队成员使用不包含敏感信息的真实测试数据。将该计划添加到数据库项目中,并将其签入到版本控制中。

  6. 还要为现有数据库功能定义数据库单元测试。通常将单元测试包括在单独的项目中,并将该项目与数据库项目包含在同一解决方案中,再将整个解决方案签入到版本控制中。

现在,团队可以开始进行开发工作了。

在独立开发环境中执行迭代开发

作为开发人员,需要将本地开发环境与版本控制系统同步。对数据库项目的**“目标连接”**属性进行自定义,以指向要承载数据库副本的服务器。特色工作包括以下过程:

  1. 确定要执行的任务。例如,此步骤可能涉及确定在 Team Foundation 工作项跟踪 中为您分配的工作项。

  2. 修改数据库项目、其内容以及任何相关的源代码。将文件从版本控制中签出,在版本控制中可使代码和数据库项目保持同步。

  3. 如有必要,可以创建或修改单元测试并更新数据生成计划。

  4. 生成数据库项目和相关的一个或多个应用程序并将它们部署到您具有数据库私有副本的服务器上。

  5. 运行单元测试,可能要使用数据生成器来创建测试数据。

  6. 重复步骤 2 至步骤 5,直到所有测试都通过并且您对结果满意为止。

  7. 当单元测试通过并且您对工作质量感到满意时,签入对数据库项目、应用程序和单元测试的所有更改。

  8. 继续进行下一项任务。

通过遵循此过程,可以在独立环境中开发和测试您的更改,这样在更改达到一致的质量水平之前不会影响其他开发人员。届时,可将工作签入到版本控制中,并允许其他开发人员访问您所做的改进。

将更改部署到产品中

团队进行了所有必需的更改后,下一步是更新成品服务器。如果您负责执行该任务,则可从版本控制中获取数据库项目的最新版本,生成部署脚本,根据需要手动更新该脚本,然后运行该脚本将架构更改部署到产品中。

有些版本控制软件支持在特定时间对存在的一组文件进行标记的功能。例如,当存在特定版本的数据库项目、应用程序源代码、单元测试和其他文件时,可对它们进行标记。即使开发从此时继续,仍然总是可以检索该版本中包括的特定版本的文件。有关如何部署以前标记的数据库项目版本的更多信息,请参见如何:部署受版本控制的数据库的旧版本

数据库的表示形式

如果遵循此数据库开发过程,则最多可有三种数据库表示形式:

  • 数据库服务器表示形式,其中包含数据库及数据。如果您是数据库开发人员,您将主要使用开发或测试数据库。许多组织都具有单独的数据库管理员角色,该角色具有成品数据库的访问权限。

  • 数据库项目,它是数据库架构的脱机表示形式。数据库项目还包括所有可用来生成测试数据和脚本的数据生成计划,可以使用这些测试数据和脚本来部署和管理数据库。有关更多信息,请参见数据库项目概述

  • 版本控制储存库,它可跟踪您或团队的任何成员对数据库项目所做的所有更改。

数据库服务器与数据库项目交换数据,数据库项目还可与版本控制储存库交换数据。如果了解这些表示形式如何交换有关版本控制、架构导入和部署的数据,则可以更有效地管理数据库。

请参见

任务

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

概念

数据库对象使用概述

Database Edition 术语概述

其他资源

数据库项目入门

生成和部署数据库架构

处理数据库脚本

在团队环境中处理数据库项目

演练(创建并更新受版本控制的数据库架构)