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

Django新增Airport模型后保存提示无对应表、迁移执行失败问题求助

问题根因

你出现该报错是因为先创建了带origin字段的Flight模型并写入了数据,后续修改模型将origin改为关联Airport的外键,且未清理旧数据库残留数据和无效迁移文件就尝试新增Airport模型,最终形成迁移冲突:数据库中无Airport对应表,同时旧Flight表的非法外键值又阻塞了新迁移执行。

修复步骤
  • 第一步:清理冲突残留
    1. 删除项目根目录下的db.sqlite3数据库文件,学习阶段无重要业务数据可直接删除
    2. 进入flights应用的migrations文件夹,删除该目录下除__init__.py之外的所有文件,不要删除__init__.py本身
  • 第二步:重新生成迁移
    执行指定应用的迁移生成命令,避免Django未检测到模型变更:
    python manage.py makemigrations flights
    执行完成后打开新生成的迁移文件,确认内容包含Airport模型的创建逻辑、Flight模型外键关联Airport的逻辑,无异常后进入下一步
  • 第三步:执行迁移
    执行全量迁移命令,此时是全新数据库无旧数据冲突,不会报错:
    python manage.py migrate
  • 第四步:功能验证
    进入Django shell执行你之前的测试代码即可正常运行:
    from flights.models import Airport
    f = Airport(code="NY", city="New York")
    f.save()
    # 验证数据是否成功写入
    print(Airport.objects.all())
    

内容的提问来源于stack exchange,提问作者Vicent LHK ROT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 07:06:04