如何知道数据库何时在 Django 中准备就绪?

Thi*_*t J 5 database django postgresql django-signals django-orm

一旦数据库在 Django 中准备就绪,我就需要做一些事情。具体来说,我需要对来自 db 的值执行一些计算并将结果填充到缓存中。

从 django 1.7 开始,应用程序注册表可以很容易地知道应用程序或模型何时可以使用。你可以写:

from django.apps import apps

if apps.ready:
    do_some_stuff()
Run Code Online (Sandbox Code Playgroud)

但是我发现模型准备好了并不意味着可以查询数据库。Django 文档 说:

尽管您可以如上所述访问模型类,但请避免在 ready() 实现中与数据库交互

我试着去参加这个post_migrate活动。如果我正在重建数据库(例如启动测试套件),它会起作用,但如果我只是使用现有数据库(例如使用runserver),则不会。

有没有办法知道数据库在 Django >= 1.7 中是否完全可用?