如何在启用 EF Core 迁移的情况下在 Azure 中运行蓝绿部署

The*_*ist 5 azure blue-green-deployment entity-framework-migrations ef-core-2.2

我想运行蓝绿部署;然而,EF 迁移似乎阻止了这一点。如果我将版本 1 部署到蓝色插槽,创建 EF 迁移并将版本 2 部署到绿色插槽,则会发生以下两种情况之一。

场景一:

我将运行迁移,版本 1 将停止工作。这违背了能够在绿色插槽中测试版本 2 同时让我们的用户在蓝色插槽中运行版本 1 的目的。

场景2:

在从蓝色插槽切换到绿色插槽之前,我不会运行迁移。这意味着在允许用户访问版本 2 之前我无法测试绿色插槽(版本 2)。

处理这个问题的标准/最佳实践是什么?

bri*_*lam 5

对于这样的工作流程,您需要分两步进行架构更改。

第一步是以与 v1 兼容的方式添加 v2 所需的所有内容。任何新列都需要是可选的,或者如果可能的话,使用默认约束或触发器根据 v1 值填充它。

v1 停用后,您可以通过删除未使用的列并将列设置为必需来清理架构。

NuGet.org 多年来一直通过 EF 迁移成功使用此工作流程。