azure - 如何在启用了 EF Core 迁移的 Azure 中运行蓝绿色部署
问题描述
我想运行蓝绿色部署;但是,EF Migrations 似乎阻止了这一点。如果我将版本 1 部署到 Blue 插槽,创建一个 EF 迁移并将版本 2 部署到 Green 插槽,则会发生以下两种情况之一。
场景一:
我将运行迁移,版本 1 将停止工作。这违背了能够在绿色插槽中测试版本 2 而让我们的用户在蓝色插槽中运行版本 1 的目的。
场景二:
在从蓝色插槽切换到绿色插槽之前,我不会运行迁移。这意味着在允许用户访问版本 2 之前,我无法测试绿色插槽(版本 2)。
处理此问题的标准/最佳实践是什么?
解决方案
对于这样的工作流程,您需要分两步进行架构更改。
第一步是以与 v1 兼容的方式添加 v2 所需的所有内容。任何新列都需要是可选的,或者如果可能的话,使用默认约束或触发器根据 v1 值填充它。
v1 停用后,您可以通过删除未使用的列并使列成为必需列来清理架构。
NuGet.org 多年来一直通过 EF 迁移成功使用此工作流。
推荐阅读
- c# - AutoFixture - 创建“有效”和“无效”实例和 [AutoData]
- reactjs - 反应弹簧过渡。如何平滑地向下移动表单以使 div 出现?无论 div 的高度如何
- javascript - 如何在 aspx/c 中执行服务器端循环时更新文本框#
- android - Google 地图活动错误:set_timerslack_ns 写入失败:不允许操作?
- php - 在 docker laravel php-fpm nginx 上使用 umask 0 创建会话
- visual-studio-code - 我无法得到在 VS 代码中使用 emmet 时在新行中添加标签
- r - R嵌套for循环返回意外结果
- python - 运行openvpn GUI后如何继续运行python脚本
- c++ - 识别一个值是大于还是小于第二个值 (C++)
- image-processing - 如何从产品图像中删除背景?