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

How do I run a blue green deployment in Azure with EF Core Migrations enabled

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

场景 1:

I will have run the migration, and version 1 will stop working. This defeats the purpose of being able to test version 2 in the green slot while letting our users run version 1 in the blue slot.

场景 2:

I don't run the migration until I switch from the blue slot to the green slot. This means that I can't test the green slot (version 2) before giving users access to version 2.

处理此问题的 standard/best 做法是什么?

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

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

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

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