Rei*_*l-- 5 database-migration dacpac azure-devops azure-pipelines-release-pipeline
我正在通过 Azure DevOps 中的 DACPAC 版本管理 SQL Server 数据库。我的项目目前正在开发中,但我预计在产品上线后开发会继续进行。
默认情况下,如果即将发生数据丢失,尤其是在 Prod 中,我将发布配置设置为 b0rk - 大多数更改不应导致它,而且我的直觉是,总体数据丢失更有可能表明存在错误,而不是错误故意放弃数据。
但自然地,我预计在某些情况下迁移会故意丢弃数据,这是预期的并且可以接受。
我希望以一种可控且稳健的方式来设置 DevOps,以便我能够实现这一目标。实现这一目标的最佳方法是什么?
我的理想本质上是“是的,部署这个版本……是的,我知道这会导致数据丢失,没关系。”
我有一个想法,我会将其作为答案发布。但我正在寻找其他想法,或任何“标准”或“官方”方法。(或者只是更好的想法:D)
DevOps 允许您将参数传递给SqlPackage.exe,其中之一控制 DACPAC 如何响应潜在的数据丢失:
/p:BlockOnPossibleDataLoss=false
由于 DevOps 版本管道本身可以通过版本“变量”进行参数化,并且可以在特定版本中编辑变量,而不会影响默认设置。
因此,人们可以简单地参数化传递给 的值SqlPackage.exe,从而创建一个版本,该版本允许或不允许基于该变量的 DataLoss,并且当您需要发布确实需要 DataLoss 的内容时,创建一个版本并相应地设置变量。
编辑:工作得很好
| 归档时间: |
|
| 查看次数: |
3547 次 |
| 最近记录: |