据我所知,如果settings.py
中设置的任何数据库在应用程序启动时出现故障,则Django应用程序无法启动。反正有没有让Django“lazyload”初始数据库连接?
我配置了两个数据库,其中一个数据库有点不稳定,有时可能会停机几秒钟,但它仅用于应用程序的某些特定用例。你可以想象我不希望所有的应用程序因此而无法启动。对此有什么解决方案吗?
我正在使用Django 1.6.11,我们也使用Django South进行数据库迁移(如果它以某种方式相关)。
答案 0 :(得分: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 will try to reinitialize the database connection。