首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ReadyRoll迁移脚本中的条件逻辑

使用ReadyRoll迁移脚本中的条件逻辑
EN

Stack Overflow用户
提问于 2017-06-09 15:39:09
回答 2查看 220关注 0票数 0

我有一个使用ReadyRoll的项目和一个带有迁移头的脚本,它使用一个条件来运行脚本或不基于项目属性的SQLCMD变量部分中定义的变量($(Environment) )。

代码语言:javascript
复制
-- <Migration ID="bf593e36-5883-4fff-9c6d-223f7449fccf" Condition="'$(Environment)' = 'DEV'" />

<some sql scripts here>

当我将这个项目部署到一个干净的sql服务器实例时,不管我指定了什么环境,它仍然部署这个脚本。

我想知道如何使用ReadyRoll运行基于条件的脚本。脚本当前驻留在Migrations文件夹中.我不确定它是否需要重新定位。

到目前为止,我已经看过这些链接,但它们没有帮助:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-12 07:59:48

通过在我想要运行的sql上面添加一个if语句,我已经能够让它工作起来,它反映了迁移标记指定的保护。

最后的代码片段如下所示:

代码语言:javascript
复制
-- <Migration ID="bf593e36-5883-4fff-9c6d-223f7449fccf" />
if '$(Environment)' = 'DEV'
BEGIN
  <some sql scripts here>
END
票数 0
EN

Stack Overflow用户

发布于 2017-08-05 18:38:31

这种方法对于八达通的部署非常有效:

-- <Migration ID="bf593e36-5883-4fff-9c6d-223f7449fccf" Condition="'$(Environment)' = 'DEV'" />

唯一的问题是您需要在您的ReadyRoll项目(SQLCMD变量)和Octopus中创建同名为"Environment“的变量。并指定单独的值(DEV、测试、PROD等)对于每一个环境。

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

https://stackoverflow.com/questions/44461785

复制
相关文章

相似问题

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