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

Django 2.0.7 admin后台保存触发OperationalError无auth_user__old表问题

解决Django 2.0.7后台新增数据报错no such table: main.auth_user__old

报错原因

该问题是Django 2.0.x、2.1.x系列版本与SQLite 3.26及以上版本的兼容性缺陷:SQLite 3.26版本修改了ALTER TABLE语句的执行逻辑,而对应版本的Django没有适配该变更,处理表变更时会错误查询不存在的*__old后缀表,触发报错。

解决方案

方案1:升级Django版本(长期有效,推荐)

官方已经在Django 2.0.8、2.1.5版本修复了该bug,直接升级到对应修复版本即可:

# 升级到2.0分支最新修复版
pip install Django==2.0.13

# 也可选择升级到2.2.x长期支持版,兼容性更好
pip install Django==2.2.28

升级完成后执行迁移同步即可正常使用:

python manage.py makemigrations
python manage.py migrate

方案2:不升级Django临时处理

如果当前项目暂时无法升级Django版本,按以下步骤操作:

  • 先备份项目根目录下的SQLite数据库文件(默认名称为db.sqlite3)
  • 删除products/migrations目录下除__init__.py之外的所有迁移文件
  • 删除根目录下的原db.sqlite3数据库文件
  • 重新执行迁移命令生成新的数据库:
python manage.py makemigrations
python manage.py migrate
  • 重新创建后台管理员账号:
python manage.py createsuperuser

操作完成后即可正常在后台新增产品数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 16:48:03