You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django单元测试运行耗时久,执行--keepdb参数出现MySQL 1064语法错误

问题原因

这个报错是版本兼容性冲突导致的:Django 2.1.7 与 PyMySQL 1.0.2 的SQL拼接逻辑、转义规则不匹配,生成的测试库创建SQL语句不符合MySQL语法要求。

解决方案

方案1:降级PyMySQL到兼容版本

Django 2.1.7 适配的PyMySQL最高稳定版本为0.9.3,执行以下命令替换版本即可:

pip uninstall pymysql
pip install pymysql==0.9.3

降级完成后重新执行python manage.py test --keepdb即可正常运行。

方案2:手动指定测试数据库跳过创建逻辑

如果不想调整依赖版本,可以预先创建测试库,再修改Django配置跳过自动建库步骤:

  1. 手动登录MySQL执行建库语句:
CREATE DATABASE IF NOT EXISTS `test_b2b`;
  1. 在settings.py的数据库配置中添加TEST参数,关闭自动建库:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        # 原有其他配置项保持不变
        'TEST': {
            'NAME': 'test_b2b',
            'CREATE_DB': False,
        }
    }
}

配置完成后再次执行测试命令即可。

内容的提问来源于stack exchange,提问作者surya raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:24:00