Django迁移报错:accounts_user表不存在问题求助
解决Django自定义用户模型迁移报错问题
核心原因
设置AUTH_USER_MODEL = 'accounts.User'后,Django内置的auth、admin等模块迁移依赖自定义用户表,但自定义用户模型的迁移未被优先执行,再加上残留的旧迁移文件导致makemigrations无法生成新的初始迁移,最终引发找不到表的错误。
解决步骤
- 彻底清理旧迁移文件:删除所有app下
migrations目录中除__init__.py之外的所有文件,包括accounts/migrations/0002_initial.py这类残留文件。 - 验证自定义用户模型定义:确保
accounts/models.py中的User模型继承正确,示例代码:from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): # 自定义字段(如有需求添加) pass - 重新生成初始迁移:执行命令生成自定义用户模型的迁移文件:
此时会在python manage.py makemigrations accountsaccounts/migrations下生成0001_initial.py,包含正确的用户模型迁移逻辑。 - 按顺序执行迁移:先迁移
accountsapp创建用户表,再执行全局迁移处理其他模块:python manage.py migrate accounts python manage.py migrate
额外排查点
- 确认
settings.py中INSTALLED_APPS已添加accounts; - 检查
AUTH_USER_MODEL = 'accounts.User'是否写在settings.py的合理位置(避免放在文件末尾之后,确保Django加载时能读取到); - 若仍有问题,删除
db.sqlite3后重复上述步骤。
内容的提问来源于stack exchange,提问作者gitstash
相关产品推荐
相关产品推荐

