我们的解决方案有 2 个网络服务器的生产设置,这两个网络服务器是负载平衡的,并连接到同一个数据库。
我们使用 Octopus 部署,并执行滚动部署,我们在负载均衡器中禁用正在更新的网络服务器。
我们首先使用实体框架代码迁移,并在部署时运行
dotnet ef migrations script,以生成我们可以对数据库执行的 SQL 脚本。这是我们斗争的开始。
发生的迁移发生了重大更改,导致仍然在线的网络服务器由于数据库不匹配而失败。
所以我们需要在迁移前和迁移后进行
根据我拥有的 sql 脚本,我一直无法找到可以为我创建这些预迁移的工具,我开始认为这是一个梦想,这可能吗?如果没有,人们在他们的部署管道中做什么?
我看过 Liquibase、DbUp、Roundhouse,但它们都没有提供我想要的功能。
.net deployment high-availability entity-framework-migrations