首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当dacpac自上次部署以来已被修改时,才通过VSTS部署dacpac

仅当dacpac自上次部署以来已被修改时,才通过VSTS部署dacpac
EN

Stack Overflow用户
提问于 2017-09-12 15:23:50
回答 1查看 338关注 0票数 1

在VSTS中的dacpac步骤中,可以将数据库设置为仅根据自定义条件运行。条件示例基于VSTS构建信息,我无法从连接的Azure订阅或dacpac元数据中找到使用条件的任何文档。在条件页中,它们有一个版本变量,它看起来可能很有用,但是我找不到关于它的其他信息。

基本上,当触发dacpac步骤时,我希望检查现有数据的元数据,有条件地运行构建步骤,并更新元数据。通过VSTS构建步骤可以做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-13 06:00:08

是的,这是可能的。您可以在VSTS构建定义中添加用户定义的变量(例如具有默认值result的变量0)。并使用值1运行dacpac步骤,并使用值0跳过该步骤。

具体步骤如下:

  • 在dacpac步骤之前添加一个具有两个操作的PowerShell任务
代码语言:javascript
复制
1. Check if there has new changes for the existing data. 

如果元数据仅存储在Azure中,则可以在powershell中引用这边请与Azure连接。如果元数据也存储在使用您构建的存储库(例如git )中,则还可以在存储库中检查更新。

2.根据元数据是否更新的情况设置result变量值。

如果更新了数据,那么用值result更改1变量:

写主机("##vsotask.setvariable variable=result1")

否则,不要更改值(将值保留在0中)

由于数据是在git中管理的,所以可以检查数据是否在git中更新。如果数据被更改,那么将变量result更改为1。详细说明powershell脚本如下:

$files=$(git ~1-仅名)回显“已更改的文件如下:$files”如果($files -contains 'filename')写-主机("##vsotask.setvariable variable=result1")

  • 为dacpac步骤设置条件: 在该任务中,选择“自定义条件”以运行此任务。如果您想在成功时运行此任务,并且变量result变量是1,则可以表示: 和(后继(),eq(变量‘’,'1'))

现在,如果具有值result0,将跳过dacpac步骤,即具有值1result,则将执行dacpack。

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

https://stackoverflow.com/questions/46180224

复制
相关文章

相似问题

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