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

Django 4.1中manage.py makemigrations未检测模型变更求助

Django 4.1 删除migrations文件夹后的问题解决

删除migrations文件夹确实会影响makemigrations和migrate的正常运行,原因和解决方法如下:

问题根源

Django的迁移系统依赖两个核心部分:

  • 应用目录下的migrations文件夹,用来记录模型从初始状态到每次变更的历史版本
  • 数据库中的django_migrations表,用来跟踪哪些迁移已经被执行到数据库中

你删除migrations文件夹后,本地丢失了模型的迁移历史记录,新数据库的django_migrations表也没有对应应用的迁移条目。此时makemigrations会将当前模型视为“初始状态”,自然检测不到变更。

修复步骤

  1. 生成初始迁移
    执行命令指定应用名生成初始迁移,避免Django遍历所有应用时漏检:
    py manage.py makemigrations <你的应用名称>
    
  2. 同步迁移到数据库
    • 如果你的新数据库中还没有CarArticle对应的表,直接执行:
      py manage.py migrate <你的应用名称>
      
      这会将刚生成的初始迁移应用到数据库,同时在django_migrations表中记录该迁移。
    • 如果数据库中已经存在CarArticle表(比如之前手动创建过),用--fake参数让Django标记迁移为已执行,避免表已存在的报错:
      py manage.py migrate --fake <你的应用名称> 0001
      
  3. 后续规范操作
    之后修改模型字段时,直接执行py manage.py makemigrations和py manage.py migrate即可,不要再删除migrations文件夹。如需重置迁移,可先删除数据库django_migrations表中对应应用的条目,再删除migrations文件重新生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:36:16