OperationalError at /admin/userinfo/userinfo/1/delete/
no such table: main.auth_user__old
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/userinfo/userinfo/1/delete/
Django Version: 2.0.6
Exception Type: OperationalError
Exception Value:
no such table: main.auth_user__old
Exception Location: C:\ProgramInstall\Anaconda3\envs\ZDjangoWeb\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 303
Python Executable: C:\ProgramInstall\Anaconda3\envs\ZDjangoWeb\python.exe
Python Version: 3.7.3
Python Path:
['C:\\01seafile\\工作资料库\\ZDjangoWeb',
'C:\\ProgramInstall\\Anaconda3\\envs\\ZDjangoWeb\\python37.zip',
'C:\\ProgramInstall\\Anaconda3\\envs\\ZDjangoWeb\\DLLs',
'C:\\ProgramInstall\\Anaconda3\\envs\\ZDjangoWeb\\lib',
'C:\\ProgramInstall\\Anaconda3\\envs\\ZDjangoWeb',
'C:\\Users\\zhuyr\\AppData\\Roaming\\Python\\Python37\\site-packages',
'C:\\ProgramInstall\\Anaconda3\\envs\\ZDjangoWeb\\lib\\site-packages']
Server time: Fri, 16 Aug 2019 06:14:24 +0000
好坑的一个bug,跑测试的时候用的Django是2.0.9的版本,python3.7,结果怎么改都会出问题,在stackoverflow发现竟然是sqlite的版本问题,需要降级到2.6之前的版本,怎么降级sqlite没找到,还好Django在2.1.5修复了这个bug, https://code.djangoproject.com/ticket/29182。
所以就升级一下Django吧,2.1.5之后就没问题了
命令:pip install Django –upgrade
或直接指定版本:pip install Django==2.1.5
可以使用 python -m django –version 查看版本号
更新Django版本且备份好数据库里的数据后,删除app下的migrations文件夹,删除db.sqlite3,重新进行数据库迁移。
#先迁移默认的app
python manage.py migrate
#再迁移自己的app
python manage.py makemigrations polles
python manage.py migrate polles
数据库迁移以后,再创建超级用户,在后台的Django administration,执行添加修改操作。