0

我正在开发一个具有多个共享公共数据库的服务的项目。我想将操作错误导致数据损坏的风险降到最低,我想防范的一种情况是针对新数据库运行陈旧代码。

也就是说,我想以某种方式在数据库上加上一个版本,然后在启动时让所有早于该版本的服务出错。这样,一旦迁移了数据库,就无法针对新数据库启动旧代码。其他人是否有任何现成的方法来解决这个问题?我正在使用 Django,但我也对其他框架使用的解决方案感兴趣。

4

2 回答 2

1

您可以有一个简单的表格来存储应用程序与最低应用程序版本号。

您的升级数据库脚本的一部分将填充此表。当应用程序启动时,它会根据表中的最低版本检查它的版本,如果它的版本太低,它就会爆炸。

我不知道有任何现有的包可以做到这一点,但它似乎不需要太多代码来实现。我喜欢这个主意。

于 2011-08-05T22:10:52.570 回答
0

如果您使用的是 south,您可以编写一个中间件来检查是否已应用所有应用程序中的所有迁移,如果没有,您可以让它响应每个请求,并发出硬编码的维护警告。

当然,您只想运行一次。

于 2011-08-05T22:28:59.980 回答