首页 > 解决方案 > 石墨烯代码在 Django 数据迁移之前运行

问题描述

我写了一段代码,从数据库中动态生成石墨烯输入对象类型。当我尝试跑步时

./manage.py migrate

该代码在迁移之前运行并导致

django.db.utils.ProgrammingError

我在运行 Pytest 时也遇到了同样的问题。如何防止此代码在数据迁移之前运行

标签: python-3.xdjangographqldjango-migrationsgraphene-django

解决方案


我在 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 参数调用这个钩子


推荐阅读