【发布时间】:2020-08-10 04:36:03
【问题描述】:
所以从
的开发/部署方法过渡- 在源代码管理下拥有数据库,并拥有特定版本的数据库的部署管道
- 在源代码控制下拥有 Web 应用程序/API,并为这些提供部署管道;
然后在 DB 版本上有 Web APP/API 的依赖关系——因此要添加新的 DB 更改,例如,我们必须进行 DB 发布;在我们发布应用程序之前 - 数据库更改必须不“破坏”旧应用程序 - 然后我们可以升级应用程序以使用新的数据库更改
虽然很痛苦 - 这很有效;当您有 N 个用于 Web 应用程序的服务器(水平比例)和适当的 SINGLE DB 服务器时,它也可以工作。
现在正在使用数据迁移实现 EF Core 3.1 Code First。所有工作都按预期工作,一个具有单个数据库的单个 Web 应用程序。
但是 - 如果这被部署到 N 个 Web 服务器,再次使用单个数据库实例;然后.....
- “如果”网络服务器一次升级一个,然后数据迁移将在第一个“新”应用程序启动时发生 - 并且可能旧的网络应用程序将继续工作(取决于更改)
以上不是我真正关心的问题;这是
- 如果您同时部署在多个 Web 应用服务器上并且这些应用同时启动;那么我想数据迁移将同时尝试......这意味着其中一个必须失败。
所以:64,000 美元的问题 - 人们如何使用带有 EF Code First 数据迁移的单数据库服务器来处理 Web 应用程序的横向扩展?
是“小心你的改变”吗?
【问题讨论】:
标签: entity-framework .net-core ef-code-first database-migration