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

Django迁移报错:无法解析关联模型,新增Purchaser模型后migrate失败

Django Migrate报错:Applying tracking.0002_auto_xxxx_xxxx失败

兄弟,我之前也踩过类似的坑,你在standard应用新增Purchaser模型后makemigrations正常,但migrate时卡在tracking的迁移上,大概率是迁移依赖顺序不对或者tracking的迁移文件里引用了还未创建的Purchaser模型,给你几个具体的排查和解决步骤:

先看报错核心信息

Running migrations: Applying tracking.0002_auto_20180418_1909...Traceback (most recent call last): File "manage.py", line 21, in execute_from_command_line(sys.argv) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\django\core\management_init_.py", lin...

排查方向1:检查tracking迁移文件的依赖

打开tracking/migrations/0002_auto_20180418_1909.py,看顶部的dependencies列表,是不是没有包含standard应用新增Purchaser后的那个迁移文件(比如standard.000x_purchaser)?

如果是这样,手动修改dependencies,把standard的最新迁移加进去:

dependencies = [
    ('tracking', '0001_initial'),
    ('standard', '0002_purchaser'),  # 这里换成你实际的standard迁移编号
]

保存后再重新执行python manage.py migrate。

排查方向2:调整迁移执行顺序

如果tracking的迁移是在standard的Purchaser迁移之前生成的,那migrate时会先跑tracking的迁移,这时候数据库里还没有Purchaser的表,自然会报错。解决步骤:

  1. 先回退tracking到上一个正常的迁移版本:
    python manage.py migrate tracking 0001_initial
    
  2. 先执行standard的迁移,创建Purchaser表:
    python manage.py migrate standard
    
  3. 重新为tracking生成正确的迁移文件:
    python manage.py makemigrations tracking
    
  4. 最后执行所有迁移:
    python manage.py migrate
    

排查方向3:检查tracking迁移文件的代码错误

打开tracking的0002迁移文件,仔细看里面的操作,是不是有拼写错误(比如把Purchaser写成了Purchasers),或者字段定义错误(比如外键关联了不存在的模型)?如果发现错误,修正后再执行migrate。

终极方案:删除错误迁移文件重新生成

如果上面的方法都没用,可以直接删掉tracking的0002迁移文件,然后重新生成:

  1. 删除tracking/migrations/0002_auto_20180418_1909.py文件
  2. 重新生成tracking的迁移:
    python manage.py makemigrations tracking
    
  3. 执行迁移:
    python manage.py migrate
    

内容的提问来源于stack exchange,提问作者Sam Drescher

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:16:07