Django报错:no such table: main.auth user old的解决

来自CloudWiki
跳转至: 导航搜索

错误描述

django报错:no such table: main.auth_user__old

好坑的一个bug,跑测试的时候用的Django是2.0.9的版本,python3.7,结果怎么改都会出问题,在stackoverflow发现竟然是sqlite的版本问题,需要降级到2.6之前的版本,怎么降级sqlite没找到,还好Django在2.1.5修复了这个bug, https://code.djangoproject.com/ticket/29182。

参考文档:https://developer.aliyun.com/article/710446

解决方法

pip install --upgrade django==2.1.5 -i https://pypi.mirrors.ustc.edu.cn/simple/

更新Django版本且备份好数据库里的数据后,

删除app下的migrations文件夹中除__init__.py外的所有py文件,删除db.sqlite3,重新进行数据库迁移。