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

执行python manage.py migrate报错:homeapp_enroll_course表不存在

解决Django迁移时"Table 'homeapp_enroll_course' doesn't exist"报错方案

问题原因

手动删除了数据库表,但Django的迁移记录仍标记该表已创建,执行migrate时会尝试操作不存在的表,触发报错。

解决方案

方案一:保留Enroll_course模型,重新同步表与迁移记录

  • 查看homeapp应用的迁移状态,定位对应Enroll_course的迁移文件:
    python manage.py showmigrations homeapp
    
  • 回退到该模型迁移执行前的版本(假设对应迁移文件前缀为0003,则回退到0002):
    python manage.py migrate homeapp 0002
    
  • 删除项目中对应Enroll_course的迁移文件(如homeapp/migrations/0003_enroll_course.py)
  • 重新生成迁移文件:
    python manage.py makemigrations homeapp
    
  • 执行迁移重建数据表:
    python manage.py migrate homeapp
    

方案二:移除Enroll_course模型,清理相关迁移

  • 删除models.py中的Enroll_course类代码
  • 生成移除模型的迁移文件:
    python manage.py makemigrations homeapp
    
  • 因已手动删除表,先标记该迁移为已应用:
    python manage.py migrate homeapp --fake
    
  • 再执行正常迁移完成清理:
    python manage.py migrate homeapp
    

注意事项

  • 不要手动删除数据库表,所有表结构变更都应通过Django的makemigrations和migrate命令完成
  • 操作前务必备份数据库,避免数据丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:48:19