首页 > 解决方案 > 如何在启用了 EF Core 迁移的 Azure 中运行蓝绿色部署

问题描述

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

场景一:

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

场景二:

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

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

标签: azureentity-framework-migrationsef-core-2.2blue-green-deployment

解决方案


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

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

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

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


推荐阅读