【发布时间】:2016-12-20 15:03:22
【问题描述】:
我有数千个 SQL Server 数据库(每个客户端一个)。当我们决定推进生产时,我们大部分时间都在数据库、Web API 和 Web 应用程序中进行更改。
问题在于部署所有内容(尤其是数据库)所需的时间。我们正在使用最新版本的 Code First 迁移和 MVC .NET 和 SQL Server。它是一个 SaaS。并且代码优先迁移过程能够一个一个地更新数据库。
API 和 Web 应用程序在几秒钟内即可快速部署。但是,数据库在大约 30 分钟内全部更新。在此期间,一些用户遇到错误并且无法使用该软件,因为 API 试图以未更新的数据库为目标。更糟糕的是,如果在数据库更新过程中出现故障并停止,未更新的用户将被卡住,直到我们修复问题并更新其余数据库。
知道如何解决这个问题并让客户满意吗?
PS:Web 应用程序不访问数据库,而只访问 API。
【问题讨论】:
-
如果您有 1,000 个数据库,那么您确实无能为力。更新所有这些数据库需要时间。您唯一能做的就是在更新过程中使应用程序脱机……无论如何,这确实应该发生。找到一个可以进行系统升级的时间窗口,并确保您的客户了解该窗口。在这段时间内进行更新,没有人应该有任何问题。
-
我还会考虑逐个更新每个客户端数据库,而不是一次全部更新。
标签: c# .net sql-server asp.net-web-api deployment