python-3.x - 石墨烯代码在 Django 数据迁移之前运行
问题描述
我写了一段代码,从数据库中动态生成石墨烯输入对象类型。当我尝试跑步时
./manage.py migrate
该代码在迁移之前运行并导致
django.db.utils.ProgrammingError
我在运行 Pytest 时也遇到了同样的问题。如何防止此代码在数据迁移之前运行
解决方案
我在 pytest django GitHub 问题上找到了此代码,以解除 py 测试挂钩中的数据库限制。
import pytest
from pytest_django.plugin import _blocking_manager
from django.db.backends.base.base import BaseDatabaseWrapper
@pytest.hookimpl(tryfirst=True)
def pytest_load_initial_conftests(early_config, parser, args):
_blocking_manager.unblock()
_blocking_manager._blocking_wrapper = BaseDatabaseWrapper.ensure_connection
并在 pytest.ini 中使用 -p 参数调用这个钩子
推荐阅读
- firebase - Flutter Firebase 如何做动态查询
- pandas - 在特定索引上将 TB 转换为 GB
- c# - 在 WinForms 中使用触摸屏在 PDF 上涂鸦
- django - Django 测试模型实例设置
- angular - RouteReuseStrategy 多个具有不同状态的相同路由
- java - 看不到从 html 生成的 pdf 上的图像
- javascript - React Edit 值未绑定在动态输入选择中
- spring-cloud-gateway - Spring Cloud Gateway 限速器性能
- c++ - 我可以在使用 C++14 编译的项目中使用使用 C++17 编译的静态库吗?
- javascript - 尝试在 Vue 应用程序中更新 Chart.js 中的图表数据时出现意外错误