如何在启用 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 迁移成功使用此工作流。
我想运行蓝绿部署;然而,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 迁移成功使用此工作流。