【问题标题】:best practices for using the sql server 2005 database project in visual studio 2008在 Visual Studio 2008 中使用 sql server 2005 数据库项目的最佳实践
【发布时间】:2008-12-19 22:57:53
【问题描述】:

在 Visual Studio 2008 中使用“sqlserver 2005 数据库项目”的最佳实践是什么?

我创建了一个项目文件。 如何为存储过程、视图和表创建脚本? 我将如何生成脚本来填充一些查找数据?

在数据库已经部署到生产环境后,我会如何处理可能需要在生产服务器上运行的修改。 (我想我会使用所有更改脚本创建以部署 date 命名的文件夹)

有没有办法让 Team Build 拆除并重建数据库以测试所有脚本是否正常工作?

我无法在网上找到一个散步。如果您能指出我正确的方向,将不胜感激。

谢谢

【问题讨论】:

    标签: visual-studio-2008 sql-server-2005 continuous-integration tfsbuild


    【解决方案1】:

    管理任何数据库生命周期的最佳做法(无论采用何种技术)是:

    1. 您应该能够一步构建您的项目。这包括运行您的单元测试、集成测试、回归测试以及通过扩展测试您的迁移。 (当然,这是The Joel Test 中的第 2 点。)
    2. 通过扩展,您应该能够一步部署数据库更改。

    至少,您应该从您的自动化构建中获得一些可以在您的生产服务器上运行而无需调整的东西,以便在升级程序时将您的数据库升级到新版本。 Ruby on Rails 迁移是一个很好的例子,说明应该如何完成。

    不幸的是,SQL Server 2005 数据库项目采用了完全不同的方法,据我所知,这与这些原则完全不兼容。他们确实提供“增量部署”,但似乎这完全基于模式比较工具。模式比较作为一个起点很有用,但有许多数据库重构它们无法处理,而且通常情况下,您将不得不对它们进行调整(由于冗长、难以阅读他们生成的意大利面条代码。)

    我写了一篇博文,其中我examine these issues in more detail。

    【讨论】:

      【解决方案2】:

      我一般不使用VS中的数据库项目类型。我最喜欢的处理数据库的工具是Red Gate's SQL Compare(SQL 数据比较也不错)。脚本总是与 qa/production 不同步,而这个工具会挽救你的生命(嗯,至少可以节省你的时间和理智)。

      【讨论】:

      • 我同意,他们的 SQL 比较工具在比较数据库时非常棒。它将准确地显示架构更改的位置。
      • 您是否将数据库脚本和模式保存到源代码管理?如果是这样,如何?再次感谢您的回答。我将研究 red gates sql compare。
      • 将架构更改保存到源代码管理当然很好,我会推荐它,但团队负责人需要确保他/她的开发人员真正做到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2010-10-10
      相关资源
      最近更新 更多