django - 如何在 Django 中检查 `--keepdb` 标志
问题描述
我创建了一个每次执行迁移时都AppConfig
使用信号运行一些额外 SQL 的方法。post_migrate
在我的测试中,有时我--keepdb
会加快运行测试的速度,但它仍在触发post_migrate
信号。如何检查是否--keepdb
使用了该标志,以便跳过运行额外的 SQL 命令?我查看了 Django 文档和源代码,但似乎找不到任何方法。
解决方案
--keepdb
我可以通过创建一个将标志存储在设置中的 TestRunner 来解决这个问题,如下所示:
from django.conf import settings
from django.test.runner import DiscoverRunner
class KeepDBTestRunner(DiscoverRunner):
def __init__(self, *args, **kwargs):
settings.KEEP_DB = kwargs.get('keepdb', False)
super().__init__(*args, **kwargs)
推荐阅读
- powershell - 要解释的语法
- c++ - 将 std::tuple 插入 std::map
- netflix-zuul - 如何模拟 RequestContext.getCurrentContext()?
- sql - 通过最近的坐标最快(并行)连接大型数据集?
- http - 带有 POST 方法值的 http 新请求为空
- wso2 - Shiro 和 WSO2 集成时出现错误代码 401
- python - python上是否有等效的kable(R)?
- php - Blade IF ELSE 和扩展
- javascript - 如何使用 Javascript 驱动媒体查询?
- c# - Blazor:没有会话/JWT 令牌时重定向到登录页面?