.net EF core迁移的前/后迁移确保零停机时间

.net EF core迁移的前/后迁移确保零停机时间,.net,deployment,entity-framework-migrations,high-availability,.net,Deployment,Entity Framework Migrations,High Availability,我们的解决方案有两个Web服务器,这两个Web服务器是负载平衡的,并且连接到同一个数据库 我们利用Octopus部署,并执行滚动部署,在其中禁用loadbalancer中更新下的Web服务器 我们首先使用实体框架代码进行迁移,然后在部署时运行 dotnet ef migrations script,以生成可针对数据库执行的SQL脚本。这就是我们斗争的起点 由于数据库不匹配,已经进行的迁移发生了破坏性的更改,从而导致仍然在线的Web服务器失败 因此,我们需要在迁移前和迁移后进行一次测试 迁移前在

我们的解决方案有两个Web服务器,这两个Web服务器是负载平衡的,并且连接到同一个数据库

我们利用Octopus部署,并执行滚动部署,在其中禁用loadbalancer中更新下的Web服务器

我们首先使用实体框架代码进行迁移,然后在部署时运行
dotnet ef migrations script
,以生成可针对数据库执行的SQL脚本。这就是我们斗争的起点

由于数据库不匹配,已经进行的迁移发生了破坏性的更改,从而导致仍然在线的Web服务器失败

因此,我们需要在迁移前和迁移后进行一次测试

  • 迁移前在部署前运行,这会使数据库处于旧版本的应用程序与新版本一起工作的状态
  • 迁移后在部署后运行,这将清理数据库
我一直无法找到一个工具,可以根据我拥有的sql脚本为我创建这些预迁移,我开始认为这是一个梦想,有可能吗?如果没有,人们在部署管道中做什么

我看过Liquibase、DbUp和Roundhouse,但它们都没有提供我所希望的功能