我有一个包含多个数据库的 Django 应用程序。默认数据库在本地机器上。还有一个远程的mysql数据库,用于一些写操作,但并不总是up。当服务器关闭时,mysqldb 会引发 OperationalError。
我想要一个名为“fallback”的本地 sqlite 数据库,如果 mysql 服务器关闭,它会接受数据。我意识到这涉及到 django.db.mysql.base 中的 try/except 子句,但我不太确定从那里去哪里。有没有人尝试过类似的东西?您对处理此问题的更好方法有何建议?
最佳答案
您可能会使用 Database Routers结合覆盖 save
方法的自定义模型基类。将其包装在 try..catch
中,如果发生 OperationalError,则提供一些提示,以便您的数据库路由器可以确定是否需要使用回退。
我认为这将是最干净的方式,而不是修改 django 代码本身。
关于mysql - Django 多个数据库 - 无法连接到 mysql 服务器回退到 sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5359065/