EF核心迁移之前/之后的迁移,以确保零停机时间

时间:2019-06-14 08:12:46

标签: .net deployment ef-migrations high-availability

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

我们使用Octopus部署,并执行滚动部署,在此过程中,我们将在负载均衡器中的更新下禁用Web服务器。

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

发生的迁移发生了重大变化,这导致仍处于联机状态的Web服务器由于数据库不匹配而失败。

因此我们需要以某种方式进行迁移前和迁移后

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

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

我看过Liquibase,DbUp,Roundhouse,但是它们都不提供我想要的功能。

0 个答案:

没有答案