小编Hen*_*san的帖子

从 EF 核心迁移进行前/后迁移以确保零停机时间

我们的解决方案有 2 个网络服务器的生产设置,这两个网络服务器是负载平衡的,并连接到同一个数据库。

我们使用 Octopus 部署,并执行滚动部署,我们在负载均衡器中禁用正在更新的网络服务器。

我们首先使用实体​​框架代码迁移,并在部署时运行 dotnet ef migrations script,以生成我们可以对数据库执行的 SQL 脚本。这是我们斗争的开始。

发生的迁移发生了重大更改,导致仍然在线的网络服务器由于数据库不匹配而失败。

所以我们需要在迁移前和迁移后进行

  • 在部署之前运行预迁移,这会将数据库置于应用程序旧版本和新版本一起工作的状态。
  • 部署后运行迁移后,清理数据库。

根据我拥有的 sql 脚本,我一直无法找到可以为我创建这些预迁移的工具,我开始认为这是一个梦想,这可能吗?如果没有,人们在他们的部署管道中做什么?

我看过 Liquibase、DbUp、Roundhouse,但它们都没有提供我想要的功能。

.net deployment high-availability entity-framework-migrations

5
推荐指数
1
解决办法
285
查看次数