升级Django至1.11.13后出现social_auth_usersocialauth表不存在错误
你遇到的这个问题,核心是Django版本升级后,Python Social Auth相关的依赖包冲突、配置没跟上新版本导致的,我给你一步步梳理解决方案:
1. 清理冲突的依赖包
你同时安装了旧版的python-social-auth==0.3.6和新版的social-auth-app-django==2.1.0,这两个包是替代关系,旧包会和新包产生冲突,先卸载旧包:
pip uninstall python-social-auth -y
2. 确认INSTALLED_APPS配置正确
新版的social-auth-app-django对应的app名称是social_django,而非旧版的social_auth,打开你的settings.py,检查INSTALLED_APPS是否已更新:
INSTALLED_APPS = [ # ... 其他已配置的app 'social_django', # 确保是这个,不要保留旧的social_auth ]
3. 执行数据库迁移
新版包自带迁移文件,需要让Django创建对应的数据库表:
# 先检查social_django的迁移状态 python manage.py showmigrations social_django # 执行迁移生成表 python manage.py migrate social_django
如果执行migrate时提示迁移已应用但表仍不存在,可以尝试:
- 登录数据库,删除
django_migrations表中所有app字段为social_django(或旧的social_auth)的记录 - 重新执行
python manage.py migrate social_django
4. 检查模板与视图的旧引用
如果你的模板或视图还在使用旧版的social_auth相关内容,比如模板里的{% load social_auth %},要改成{% load social_django %};URL配置里的旧路由也要替换成social_django.urls。
完成以上步骤后重启Django服务,应该就能解决表不存在的问题了。
内容的提问来源于stack exchange,提问作者sajid
相关产品推荐
相关产品推荐

