我试图在我们的存储过程中配置变量(令牌),这是DACPAC项目的一部分。我尝试以配置文件的方式来完成这个任务。I.e
使用ext令牌创建一个重复文件。将要替换的项替换为TOKEN_NAME。在RM中,为组件创建一个变量。但是,这似乎不适用于DACPAC解决方案,并且变量没有被替换。
这可能与DACPAC项目有关吗?如果不是,我可以采取什么方法在存储过程中添加可配置项?
如果这是可能的话,我哪里出错了?
发布于 2015-03-29 23:37:13
这不是一个发行版管理问题,而是一个SSDT问题。您想要做一些通常是非常糟糕的事情:数据库因环境而异。连续交付是关于一致性的问题。如果您不能相信每次将软件发布到较低的环境时,您都在“实践”您的产品部署,那么您将面临一个非常糟糕的时期,因为环境不同,生产部署失败了。
话虽如此:有几件事你可以做,按优先顺序列出:
sqlpackage.exe的参数,以便在发布时提供SQLCmd变量。这仍然是个很糟糕的主意,但它应该对你有用。发布于 2015-03-28 11:48:53
我看不出在发布DACPAC时使用令牌文件的任何方法,因为RM没有办法干扰sqlpackage.exe正在做的事情,即使可以,也会导致模式停止编译。
您可能可以编写一个组件,该组件解压缩DACPAC文件,进行令牌替换,然后将其压缩回原来的位置,但这听起来很困难。
我的建议是在DACPAC使用标记SQL脚本运行之后应用特定于环境的需求。我在一篇博客文章这里中描述了这一点。
https://stackoverflow.com/questions/29315260
复制相似问题