Django:如何在启动时禁用数据库状态检查?

Django: How to disable Database status check at startup?

据我所知,如果 settings.py 中设置的任何数据库在应用程序启动时关闭,Django 应用程序将无法启动。有没有办法让 Django "lazyload" 成为初始数据库连接?

我配置了两个数据库,其中一个有点不稳定,有时会宕机几秒钟,但它仅用于应用程序的某些特定用例。正如您想象的那样,我不希望所有应用程序因此而无法启动。有解决办法吗?

我正在使用 Django 1.6.11,我们还使用 Django South 进行数据库迁移(以防它以某种方式相关)。

我不知道它有多安全,但您可以执行以下操作:

  1. 在你的 settings.py 开头为空 DATABASES:

    DATABASES = {}
    
  2. 在您的 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 在需要的时候。

我做了一些更多的测试,只有在您使用 de 开发服务器时才会出现问题 python manage.py runserver。在这种情况下,它会强制与数据库建立连接。

使用实际的 WSGI 服务器不会发生 @Alasdair 告知的情况。

@JohnMoutafis 最后我没有测试你的解决方案,但那是可行的。