部署 Visual Studio 2010 数据库项目

Posted

技术标签:

【中文标题】部署 Visual Studio 2010 数据库项目【英文标题】:Deploy Visual Studio 2010 Database Project 【发布时间】:2011-06-17 12:07:17 【问题描述】:

我有一个 Visual Studio 2010 数据库项目,我想从中生成一个脚本 这只是将这个数据库放到另一台机器上。问题是我找不到 解决方案。

当我开始这个项目时,我从我的开发电脑上的数据库中导入了 shema。 生成了模式对象以及“模式对象-> 模式-> dbo”下的所有表和脚本。随着时间的推移,有些事情发生了变化,有些事情又增加了。并通过使用右键单击-> 部署, 已成功对我的本地数据库进行更改。

但现在我想部署到另一台机器上。问题是,在项目的发布文件夹中,只有一个 xml dbschema 文件,其中包含我无法导入的所有表和脚本 使用 sql management studio(或者我只是不知道如何)和一个部署脚本,它只不过是一些检查,然后是部署前和部署后脚本,但其中没有任何表或脚本。

请问,我如何从 Visual Studio 中导出数据库,以便我可以轻松地将其放到另一台机器上?

【问题讨论】:

在 sql server 项目属性中,您可以启用一个用于生成脚本 .sql 的框,它将在包含所有创建/更改命令以及任何部署后脚本的输出目录中放置一个脚本。跨度> 【参考方案1】:

标记--

您可能已经解决了这个问题,但我认为我应该回答您的问题以造福他人。

是的,您可以从 Visual Studio 部署到不同的机器。您也可以使用VSDBCMD 从命令行执行此操作。您可以创建一个WIX 项目,为其他人提供安装它的向导。

如果您可以从开发 PC 连接到目标数据库,则可以部署到它。为此:

    从解决方案配置下拉列表中选择另一个配置。通常,项目会附带“调试”和“发布”。您可以添加另一个配置,以便通过单击“配置管理器”部署到各种目标。

    右键单击您的项目并选择“属性”,或者直接双击项目下的属性。 单击“部署”选项卡。请注意,配置:下拉菜单显示与“活动”相同的选定配置。 将部署操作更改为“创建部署脚本 (.sql) 并部署到数据库。” 在目标连接字符串旁边,单击“编辑”并使用对话框创建与目标数据库的部署连接。 填写目标数据库名称(如果不同)。 对于每个部署配置(例如,调试、发布等),您可能需要一个单独的部署配置文件。如果单击“新建”,则可以为当前配置创建一个。新文件将打开,您可以选中和取消选中有关部署的重要事项。

    注意:如果您选中始终重新创建数据库,脚本将删除并创建您的数据库。您将丢失目标上的所有数据!请注意您在此处选择的内容。大多数人将其保留为生产目标。我检查它的 Development 或 Local,因为我想要一个新的副本。 保存对文件和属性的更改。 要部署到目标,请务必选择正确的配置。单击构建/部署 [我的数据库名称]。您可能应该对此进行试验,以便在实际环境中尝试之前熟悉它的工作原理。 良好做法:构建与生产环境类似的环境(“暂存”)并首先在其中部署,以测试部署,并始终在部署前备份数据库,以防出现问题。

更多信息,请参见:

Working with Database Projects Walkthrough: Put an Existing Database Schema Under Version Control Visual Studio 2010 SQL Server Database Projects

【讨论】:

用链接发表评论,我可以为你添加它们。享受 +1 的乐趣。【参考方案2】:

是否可以将您的 Visual Studio 指向您的新目标数据库? 1. 数据库项目的属性,部署选项卡,在目标数据库设置中设置字段。

现在,当您生成部署脚本时,生成的 SQL 文件将是各种 CREATe / ALTER / DROP 等,它们会将目标数据库与您的架构对齐。

【讨论】:

好的,这会生成一个包含所有对象的部署脚本。剩下的一个问题是代码中的某些部分不是 sql(例如 ':setvar' 或 ':on error exit')并阻止我将其添加到另一台机器上。我可以手动删除它们,但是很抱歉,这真的是最简单的方法吗?没有像“导出 SQL 创建脚本”这样的东西?如果是这样,我对微软感到失望。 如果您从命令行运行脚本,一切都会好起来的。 SQLCMD /i yourdeploymentscript.sql and other switch as required) 你也可以选择让 VS 为你执行脚本。 如果您从 SQL Server Management Studio 运行脚本,要使脚本成功运行,请打开菜单工具 > 选项。单击列表中的“查询执行”。选中“默认情况下,在 SQLCMD 模式下打开新查询”。打开一个新的查询窗口并运行您的脚本。这对于解析以“:”开头的行是必要的,例如“:setvar”。【参考方案3】:

您始终可以创建一个空数据库,然后在 Visual Studio 中对您的数据库项目和新的空数据库进行架构比较。您可以修改生成的架构更新脚本来创建数据库(因为该脚本将更新现有的空数据库)

【讨论】:

这不是很不舒服的方式吗?没有其他方法可以提取脚本进行创建吗? 这可能不是最好的方法,我不知道,当我不得不这样做时,我太着急去实际研究它。虽然它确实有效,而且非常快速且无痛,尽管我不怀疑可能有更好的方法。

以上是关于部署 Visual Studio 2010 数据库项目的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2010 Web 部署任务失败

使用 Visual Studio 2010 创建“最小部署包”

在使用 Visual Studio 2010 部署/发布期间,一些 dll 丢失

如何部署和注册支持多个版本的 Visual Studio(2005、2008、2010)的 VSPackage?

如何在 Visual Studio 2010 中部署基于 OpenCV 的独立项目?

如何在没有 ftpServer 标签的 Visual Studio 2010 中构建部署包?