部署 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 创建“最小部署包”
在使用 Visual Studio 2010 部署/发布期间,一些 dll 丢失
如何部署和注册支持多个版本的 Visual Studio(2005、2008、2010)的 VSPackage?