我们有一个基于Django的网站,我们希望对其内部一些内容(文本和诸如定价计划之类的业务逻辑)进行轻松地编辑,因此我们决定将其存储在代码库之外。通常原因是以下之一:
这是非技术人员想要编辑的东西。一个示例是网站的文案写作-程序员使用默认值为“ Lorem ipsum ...”的文本准备一个模板,然后将实际内容插入到数据库中。
我们希望能够快速进行更改,而无需部署新代码(我们目前每周执行两次)。一个示例是当前以不同定价级别向客户提供的功能。无需对它们进行硬编码,而是从数据库中读取它们。
所描述的解决方案是灵活的,但是出于某些原因我不喜欢它。
因为必须从数据库读取内容,所以会产生性能开销。
我们通过使用缓存方案来减轻这种情况,但这也增加了系统的复杂性。
与在生产环境上运行的方式相比,在本地运行代码的开发人员看到的系统处于截然不同的状态。自动化测试还会使系统处于不同的状态。诸如在登台服务器上测试新功能之类的情况也变得更加棘手-如果登台服务器没有数据库的最新副本,则它可能与生产意外地不同。
我们可以通过偶尔将新状态提交到存储库(例如通过添加数据迁移)来缓解这种情况,但这似乎是错误的方法。是吗?
任何想法如何最好地解决这些问题?有没有更好的方法来处理我忽略的内容?