Django多个数据库 - 无法连接到mysql服务器回退到sqlite

时间:2011-03-19 00:13:17

标签: mysql django django-orm

我有一个包含多个数据库的django应用程序。默认数据库位于本地计算机上。还有一个远程mysql数据库,用于某些写操作,但它并不总是up。当服务器关闭时,mysqldb会引发一个OperationalError。

我想有一个名为'fallback'的本地sqlite数据库,如果mysql服务器关闭,它将接受数据。我意识到这涉及到django.db.mysql.base中的try / except子句,但我不太确定从那里去哪里。有没有人尝试类似的东西?您对更好的处理方法有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以将Database Routers与覆盖save方法的自定义基础Model类结合使用。将其包装在try..catch中,如果发生OperationalError,请提供一些提示,以便您的数据库路由器可以确定是否需要使用回退。

我认为这将是最干净的方式,而不是修改django代码本身。