微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何部署具有已知和可接受的数据丢失的DACPAC版本

如何解决如何部署具有已知和可接受的数据丢失的DACPAC版本

我正在通过Azure DevOps中的DACPAC版本管理sql Server数据库。 我的项目目前正在开发中,但我预计Prod上线后开发会继续。

认情况下,如果即将发生数据丢失,尤其是在Prod中,我将Publish配置设置为b0rk-大多数更改都不应该引起它,而我的直觉是,总体DataLoss更有可能表示错误,而不是故意丢弃数据。

但是,自然地,我希望在某些情况下迁移会故意丢弃数据,这是可以预期的并且可以的。


我想以一种可控且健壮的方式来实现DevOps的方式进行设置。 实现此目标的最佳方法是什么?

我的理想选择是基本上说“是的,部署此发行版...是的,我知道这会导致数据丢失,这很好。”​​

我有一个想法,我将其发布为答案。但是我正在寻找其他想法,或者任何“标准”或“官方”方法。 (或者只是更好的想法:D)

解决方法

DevOps允许您将参数传递到SqlPackage.exe,其中之一控制DACPAC如何响应潜在的DataLoss:

/p:BlockOnPossibleDataLoss=false

由于DevOps发行版管道本身可以通过发行版“变量”进行参数设置,因此可以在特定发行版中编辑变量,而不会影响默认设置。

因此,可以简单地参数化传递给SqlPackage.exe的值,从而创建一个基于该变量允许或不允许DataLoss的发行版,以及何时需要发布可以做的事情需要DataLoss,创建发行版并相应地设置变量。


编辑:效果很好

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。