asp.net - 单个网站,单个数据库架构多副本
问题描述
我知道这可能是我正在考虑的逻辑混乱,但情况是我有一个网站,它有 8 个多个副本,相同的网站相同的数据库架构,但发布在同一服务器上的不同位置。
我的问题是我有大约 50 个存储过程(每个数据库),那么我该怎么做才能使维护更容易?
每次修改一个存储过程都要修改8个地方吗?我应该web.config
每次发布操作更改文件 8 次吗?
我正在考虑制作一个简单的 CMS 系统,我将存储发布目录并单击按钮将所有项目发布到选定的目录,但我仍然有一个问题是存储过程?在首次发布时,我正在考虑在首次发布时更改整个存储过程。
欢迎任何建议,现在我只有一个副本,您知道做出决定后很难维护。
顺便说一句,该网站是 ASP.NET Web 窗体,但我可以将其移植到任何新的 .NET Web 技术,如 MVC 或 .NET Core。
解决方案
如果您可以完全控制托管,那么Dai建议的“多租户数据库设计”将是更好的方法。但是,如果情况需要多个实例,那么您可以执行以下操作:
在您的数据库中存储一个版本号,以便您知道哪些脚本已运行,哪些未运行。
编写任何架构更改(包括任何存储过程)、潜在的种子数据以及包括新的数据库版本号的脚本。
将脚本存储在网站下的目录中。
有一个维护例程(手动或自动),通过比较版本号来运行以前未运行的任何新脚本。
推荐阅读
- hibernate - @ElementCollection 用于持久化 Set
- reactjs - Dragula拖动不能很好地识别dropzones
- haskell - 自定义高阶函数调用在约束错误中给出非类型变量参数
- django - Django将对象信息获取到方法而无需重新输入
- c++ - 复杂情况的C++比较器传参问题
- javascript - Chrome 中的回调执行时间与预期不符
- javascript - 如何开始使用 Webpack
- javascript - 如何使用 Tampermonkey 或 Stylebot 自动更改“显示条目”值?
- nativescript - 从当前 Java 上下文调用方法
- python - 使用莱布尼茨公式计算 pi 而无需导入任何东西