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

为何清空迁移文件与数据库后,Django仍显示旧迁移记录?

解决Django迁移重置后仍显示旧记录的问题

1. 彻底清除本地app的迁移残留

  • 直接删除项目中所有自定义app的migrations文件夹(包括文件夹本身,而非仅删除内部文件),确保无任何隐藏残留文件。
  • 检查项目目录下是否存在同名app的副本(比如子目录或其他路径下的重复app),这类副本可能被Django加载导致迁移记录残留。

2. 排查虚拟环境中的app副本

如果你的自定义app曾通过pip install -e .或pip install安装到虚拟环境:

  • 激活虚拟环境,执行pip uninstall your-app-name彻底卸载。
  • 手动打开虚拟环境的site-packages目录,确认该app的残留文件夹已完全删除。

3. 清空Django缓存

执行命令清空Django内置缓存:

python manage.py clearcache

若项目使用Redis、Memcached等第三方缓存服务,直接重启服务或清空对应缓存数据。

4. 重新生成并执行迁移

为自定义app生成初始迁移文件:

# 为单个app生成迁移
python manage.py makemigrations your-app-name

# 为所有app批量生成迁移
python manage.py makemigrations

执行迁移同步数据库:

python manage.py migrate

5. 验证结果

执行python manage.py showmigrations,此时应仅显示新生成的迁移记录(第三方app的迁移属于正常显示,无需删除)。

额外排查点

  • 检查settings.py的INSTALLED_APPS配置,确保自定义app的路径正确,未指向旧文件位置。
  • 确认IDE/编辑器未自动恢复已删除的migrations文件夹(比如版本控制的恢复功能、本地备份机制)。
  • 彻底关闭并重新打开终端窗口,避免终端缓存的环境变量或路径干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 08:52:02