提问人:Israel Fonseca 提问时间:7/21/2017 更新时间:8/11/2017 访问量:3851
Django:如何在启动时禁用数据库状态检查?
Django: How to disable Database status check at startup?
问:
据我所知,如果 Django 应用程序中设置的任何数据库在应用程序启动时关闭,则无法启动。有没有办法让 Django “延迟加载”初始数据库连接?settings.py
我配置了两个数据库,其中一个有点不稳定,有时它可能会关闭几秒钟,但它仅用于应用程序的某些特定用例。可以想象,我不希望因此而无法启动所有应用程序。有什么解决办法吗?
我使用的是 Django 1.6.11,我们也使用 Django South 进行数据库迁移(以防它以某种方式相关)。
答:
4赞
John Moutafis
7/21/2017
#1
我不知道它有多安全,但您可以执行以下操作:
在以空开头:
settings.py
DATABASES
DATABASES = {}
在 中,利用钩子建立数据库连接:
apps.py
ready()
from settings.py import DATABASES class YourAppConfig(AppConfig): def ready(self): DATABASES.update({ Your database connections })
现在我不能把我的手放在火上,但 Django 会在需要时尝试重新初始化数据库连接。
2赞
Israel Fonseca
8/11/2017
#2
我做了更多的测试,问题仅在您使用 de 开发服务器 。在这种情况下,它会强制与数据库建立连接。python manage.py runserver
使用实际的WSGI服务器,它不会像@Alasdair告知的那样发生。
@JohnMoutafis最后我没有测试你的解决方案,但这可能有效。
评论
./manage.py runserver
Performing system checks...