Visual Studio 2008 中的 SQL 数据库发布

  • Hartmut Wilms
  • 郭晓刚

2007 年 10 月 23 日

话题:.NET数据库持续集成DevOps语言 & 开发

数据库发布向导(Database Publishing Wizard)是一个流行的 Visual Studio 插件,它支持把本地的数据库部署到远程主机上去。Visual Web Developer 团队宣布将把这个向导集成到 Visual Studio 2008 之中

目前 Visual Studio 2008 的 Beta 2 版本还没包含这个向导,不过预计 2008 年 2 月发布的 VS 2008 RTM 将会一并安装这个向导的 1.2 版。这个数据库发布插件现在的版本是 1.1,从属于SQL Server Hosting Toolkit。这个工具包为主机服务的用户和提供者提供了以下方案:

  • 对于主机服务的客户
    • Database Publishing Wizard简化了上载数据库到主机的操作,还可以根据对象或者你的数据库中的数据生成 T-SQL。
  • 对于主机服务提供者
    • Database Publishing Services是一组 ASP.NET Web Services,你可以很容易地部署它,从而方便你的客户在你的环境中部署 SQL Server 数据库。

Scott Guthrie为 Visual Studio Database Publishing 插件的首个发布版本写了一篇部署数据库的详细指南,还写了一篇对目前 1.1 版的概要介绍

虽然这个发布向导在 SQL Server 数据库的部署方面是一个不错的开始,但它要成为一个完全成熟的构建方案还缺乏不少特性。Jean-Paul Boodhoo在博客上撰写了一系列文章,讨论“用 NAnt 自动化构建”。其中第 6 部分讨论了构建 SQL Server 数据库的设置和定制细节。

Peter Hancock也写了一篇文章介绍他将数据库部署融入持续集成的经验:

这篇文章是阅读 Martin Fowler 和 Pramod Sadalage 写的《Evolutionary Database Design》之后受到的启发。概念很好,但我在网上找不到如何实现的具体说明。于是我决定自己从头开始。

[...]

成功运行并不困难,而努力的回报是巨大的。在我以前的公司里,脚本的运行是由 DBA 完成的,其间还要花一周时间召集所有人一起确保脚本能正常工作,回滚失败的脚本,更新依赖于失败脚本的脚本诸如此类。抄写错误、权限错误、脚本错误、前后不一致等等都很常出现。通过像单元测试一样频繁对部署进行测试,我们就能减少错误的倾向。最后还要提醒,数据库的修改变得更方便,并不意味着程序员可以随便改数据表。数据库的设计还是需要深思熟虑的。

在构建中集成数据库部署,还可以选用 VS 里的“数据库项目”以及相应的 MSBuild task。MSDN 上提供了一篇《数据库构建及部署概述》,适用于 VS 2005 和VS 2008

查看英文原文:SQL Database Publishing in Visual Studio 2008 and Today
.NET数据库持续集成DevOps语言 & 开发