单个网站,单个数据库架构多个副本

问题描述

我知道这可能是我想到的逻辑混乱,但场景是我有一个网站,该网站有 8 个多个副本,同一网站具有相同的数据库架构,但发布在同一服务器的不同位置。

我的问题是我有大约 50 个存储过程(每个数据库),那么我该怎么做才能使维护更容易?

每次修改一个存储过程都要修改8处吗?每次发布操作时,我要更改 web.config 文件 8 次吗?

我正在考虑制作一个简单的 CMS 系统,我将存储发布目录并单击按钮将所有项目发布到选定的目录,但我仍然有一个问题,即存储过程?第一次发布时,我想在第一次发布时更改整个存储过程。

欢迎提出任何建议,现在我只有一份副本,您知道做出决定后很难维护。

顺便说一句,该网站是 ASP.NET Web Forms,但我可以将其移植到任何新的 .NET Web 技术,如 MVC 或 .NET Core。

解决方法

如果您可以完全控制托管,那么 Dai 建议的“多租户数据库设计”将是更好的方法。但是,如果情况需要多个实例,那么您可以执行以下操作:

  1. 在您的数据库中存储一个版本号,以便您知道哪些脚本已运行,哪些尚未运行。

  2. 编写任何架构更改(包括任何存储过程)的脚本,可能是种子数据,包括新的数据库版本号。

  3. 将脚本存储在网站下的目录中。

  4. 有一个维护程序(手动或自动),通过比较版本号来运行任何以前没有运行过的新脚本。