Visual Studio 数据库项目 - 部署到没有所有数据库引用的环境

Posted

技术标签:

【中文标题】Visual Studio 数据库项目 - 部署到没有所有数据库引用的环境【英文标题】:Visual Studio Database project - Deployment to environments that do not have all database references 【发布时间】:2014-05-30 16:00:07 【问题描述】:

我们有一个中型 SQL2005 数据库,其中引用了其他 SQL Server 和 Netezza 数据库(通过链接服务器)。在 PROD 上存在参考。在我的 VS2012 数据库项目中,我已将引用作为链接服务器或适当的数据库引用导入,并且项目编译。不过有很多警告。

我需要能够将我的更改部署到没有引用数据库的 DEV 和 TEST 环境中,以便我可以测试我的更改。我的更改不在引用缺失数据库的对象中。我无法使用“模式比较”>“更新”进行部署,因为它失败了。

请任何人建议在这种情况下最佳做法是什么?

【问题讨论】:

与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?. 我想说您可能需要在您的开发/测试区域中使用这些参考数据库,即使它们只是数据库的外壳。不确定链接服务器方面,尽管我怀疑在那个盒子上安装另一个实例可能会起作用。如果您的环境从 DEV 到生产都相似,您将有更轻松的时间。您应该能够进行架构比较并取消选择您知道如果所有其他方法都失败会破坏的对象。 @PeterSchott - 谢谢。回复:引用的数据库 - 我担心可能是这种情况。回复:第二个实例:我没有想过在同一个盒子上使用另一个 SQL Server 实例。我将把它作为一个选项展示给团队,看看它是如何下降的。回复:类似的环境:我们的环境非常相似,因为我们的 PROD 分为多个集群\实例,我们只有一个用于 TEST 和 DEV 的实例。 DEV还有很多搅浑水的“概念”和“试验”。 @JohnSaunders - 谢谢你的链接;一个有趣的讨论。就我个人而言,我总是说“请”和“谢谢”。如果您想在我的每个问题中编辑这些内容,请成为我的客人。谢谢。 @Dib:这是一个问答网站,不是论坛。如果我们正在交谈,那么“请”和“谢谢”会很好。但这不是对话。 【参考方案1】:

在 DEV 和 TEST 的架构比较中,选中引用缺失数据库的对象旁边的排除。当您运行更新时,它将忽略这些对象。

【讨论】:

谢谢。我们确实使用了模式比较,但如果我们开始丢弃一些导致问题的对象,那么引用这些缺失对象的对象开始导致“更新”失败...... @Dib,那么您正在部署的代码根本不会运行。我强烈建议您关注 Peter 的评论或重新构建您的数据库。

以上是关于Visual Studio 数据库项目 - 部署到没有所有数据库引用的环境的主要内容,如果未能解决你的问题,请参考以下文章

如何编写 Visual Studio 数据库项目的部署脚本?

如何限制部署后脚本在 Visual Studio 数据库项目中仅运行一次

Visual Studio 2010 数据库项目部署

如何将 android 项目从 Visual Studio 部署到 Google Play 控制台?

Visual Studio 2008 数据库项目部署基线

Visual Studio 2015 RTM Cordova 项目不会调试/部署到 Android、Windows、Windows Phone