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

标签 python mysql django django-models django-south

据我所知,如果 settings.py 中设置的任何数据库在应用程序启动时关闭,Django 应用程序将无法启动。无论如何让Django“延迟加载”初始数据库连接?

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

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

最佳答案

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

  1. 在您的 settings.py 中,以空的 DATABASES 开头:

    DATABASES = {}
    
  2. 在您的 apps.py 中,利用 ready() Hook 建立您的数据库连接:

    from settings.py import DATABASES
    
    class YourAppConfig(AppConfig):
    
        def ready(self):
            DATABASES.update({
                Your database connections
            })
    

现在我不能为那个把我的手放在火上,但是 Django will try to reinitialize the database connection需要时。

关于python - Django:如何在启动时禁用数据库状态检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45240311/

相关文章:

python - Pandas 'replace' 如何在 'loc' 之后工作?

python - 我怎样才能在 sublime 中自动完成 python 库

mysql - vb.net mysql 连接下一条记录的代码?

php - 查询联结表的 MySQL 返回重复行

jquery - AJAX 请求时 Django 表单无效(form.is_valide() 返回 False)

Python 2.x 和 3.x 无源 .pyc 部署

python - input() 函数对我不起作用(Python 3.3)

mysql - Drupal SQL "Select count distinct"

python - 如何重定向到另一个应用程序中的 View 并仍然传递参数(Django)

django - ManyToManyField 和南迁移