【问题标题】:How To: Deploy SQL Database Project using Team System Build 2010 (beta 2)如何:使用 Team System Build 2010(测试版 2)部署 SQL 数据库项目
【发布时间】:2016-12-30 02:49:53
【问题描述】:

谁能解释一下如何让 Team Build 2010 beta 2 将 SQL 数据库项目推送到 SQL 服务器?

在 VSTS 2008 中,您只需在 TFSBuild.proj 文件中添加目标属性设置为“deploy”的 MSBuild 命令,但我在将其转换为 2010 年使用的基于新工作流的 xaml 事物时遇到了一些麻烦。

我正在寻找的是如何触发数据库本身的实际部署。它已经很好地生成了部署脚本。

【问题讨论】:

    标签: visual-studio-2010 tfsbuild


    【解决方案1】:

    对于仍在寻找答案的任何人,请使用使用 vsdbcmd.exe 的调用进程: http://msdn.microsoft.com/en-us/library/ff805001.aspx

    【讨论】:

    • 非常感谢您的回答!我错过了那篇文章,并且从未真正解决过这个问题。
    • 只有我一个人,还是在进行夜间构建时这几乎是不可能的?
    • 说实话,我放弃了使用团队构建来部署数据库。相反,我已将每晚的所有内容都切换为使用 SQL Express 文件附加的参考数据库,我们只是在开发过程中维护该数据库;当我们签入数据库项目的东西时,我们只需确保使用模式比较将更改写入参考数据库。这样我们就可以使用 DB 项目,确保他们每晚都在“构建”,而不必为 DB 项目部署而烦恼。
    • 我很想知道你们遇到了什么问题。我不明白为什么这不能用于夜间构建。
    • 对我来说,问题是我们是一家只有 4 名开发人员的小商店。获得 Team Build 设置,照顾它,然后弄清楚如何让 DB 项目的东西来构建只是太多的努力。在浪费了两天时间搞砸它之后,我只是减少了损失并转向了一些有效且易于使用的东西。 90%的团队系统在使用后我都有这种感觉。这很好,但老实说,管理和设置一家小商店需要付出太多的努力……别介意延迟的许可成本。
    【解决方案2】:

    这是一个例子:

    http://www.nablasoft.com/alkampfer/index.php/2009/10/06/deploy-a-database-project-with-tfs-build/

    您可能只是缺少 DeployToDatabase=true

    【讨论】:

    • 是的,这正是你这样做的方式......在 VS 2008 中使用团队构建 2008。我需要的是有关如何在 tfs 2010 中执行相同操作的信息,它现在使用基于 xaml windows 工作流文件来控制构建过程。
    • 我不得不编辑 XAML(在 MS 极其缓慢的可视化 XAML 编辑器中!)以将“/t:Build,Deploy”添加到 msbuild 参数中。
    【解决方案3】:

    如果您不需要增量数据库升级,这个问题还有另一个解决方案。因此,如果您可以为每个构建重新创建数据库,那么以下操作也可以。

    将部署目标添加到数据库项目文件

    配置“My project settings”的部署设置。然后在构建解决方案时,构建服务器将使用这些设置。在本地构建时,使用的设置将来自“My isolated development environment”。

    1. 在数据库项目属性中

    部署动作需要是‘Create a deployment script (.sql) and deploy the database’;这将阻止脚本的执行,它只会创建它。

    1. 数据库项目文件

    修改数据库项目文件(右键数据库项目,选择Unload,再次右键,选择Edit [ProjectName].dbproj) 来自

    <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
    

    <Project DefaultTargets="Build;Deploy" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
    

    当构建服务器构建包含数据库项目的解决方案时,添加默认目标也将部署数据库。此构建将使用为“My project settings”选择的部署设置。

    优点

    • 易于设置

    缺点

    • 由于默认目标更改为 Build and Deploy,当开发者在本地 Rebuild 解决方案时,它也会部署数据库(仅构建不会触发部署)

    【讨论】:

      【解决方案4】:

      到目前为止,我发现的最接近的东西是来自 Jim Lamb(Microsoft 团队基金会 PM)的 this post

      他在这里含糊地谈到了创建自定义 proj 文件和修改默认构建过程模板以调用 proj 文件。

      他还谈到了使用我之前忽略的升级模板。显然升级模板可用于调用 2008 构建定义。我宁愿不调用和定义基于遗留项目文件的整个构建,但至少它是一个选项。

      这两个主题都没有包含足够的信息让我实际进行必要的修改,但它确实为我未来的一些实验提供了一个合理的起点。

      【讨论】:

      • 我也有同样的问题。得到答案了吗?
      • 不。一直没有找到答案。我已经推迟升级,直到 2010 年进入 RTM。希望该版本有更多的部署功能,或者至少有更多的文档和说明来自定义工作流程。
      猜你喜欢
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      相关资源
      最近更新 更多