首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发布管理配置DACPAC变量

发布管理配置DACPAC变量
EN

Stack Overflow用户
提问于 2015-03-28 08:45:31
回答 2查看 879关注 0票数 0

我试图在我们的存储过程中配置变量(令牌),这是DACPAC项目的一部分。我尝试以配置文件的方式来完成这个任务。I.e

使用ext令牌创建一个重复文件。将要替换的项替换为TOKEN_NAME。在RM中,为组件创建一个变量。但是,这似乎不适用于DACPAC解决方案,并且变量没有被替换。

这可能与DACPAC项目有关吗?如果不是,我可以采取什么方法在存储过程中添加可配置项?

如果这是可能的话,我哪里出错了?

EN

回答 2

Stack Overflow用户

发布于 2015-03-29 23:37:13

这不是一个发行版管理问题,而是一个SSDT问题。您想要做一些通常是非常糟糕的事情:数据库因环境而异。连续交付是关于一致性的问题。如果您不能相信每次将软件发布到较低的环境时,您都在“实践”您的产品部署,那么您将面临一个非常糟糕的时期,因为环境不同,生产部署失败了。

话虽如此:有几件事你可以做,按优先顺序列出:

  1. 不要让数据库在不同的环境中有所不同。
  2. 因为您可以在部署前和部署后脚本中使用SQLCmd变量,所以可以创建一个修改存储过程的部署后脚本,并通过RM传递值。您可以修改RM传入sqlpackage.exe的参数,以便在发布时提供SQLCmd变量。这仍然是个很糟糕的主意,但它应该对你有用。
  3. 您可以修改发行版默认模板并移动令牌交换操作的位置。令牌交换通常发生在构建后的;您可以将它移动到构建之前的
票数 3
EN

Stack Overflow用户

发布于 2015-03-28 11:48:53

我看不出在发布DACPAC时使用令牌文件的任何方法,因为RM没有办法干扰sqlpackage.exe正在做的事情,即使可以,也会导致模式停止编译。

您可能可以编写一个组件,该组件解压缩DACPAC文件,进行令牌替换,然后将其压缩回原来的位置,但这听起来很困难。

我的建议是在DACPAC使用标记SQL脚本运行之后应用特定于环境的需求。我在一篇博客文章这里中描述了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29315260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档