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

如何清除Django中的迁移历史?实操遇问题求助

解决Django无法清除迁移历史的方案

彻底重置迁移的步骤

  1. 清理迁移文件

    • 找到每个App下的migrations文件夹,删除其中除__init__.py外的所有文件;若已删除整个文件夹,需为每个App重新创建migrations文件夹及空的__init__.py文件。
  2. 删除数据库文件

    • 执行命令删除SQLite数据库:
      del /q db.sqlite3
      
    • 若使用PostgreSQL/MySQL等数据库,直接清空或重建对应数据库即可。
  3. 清除编译缓存文件

    • 清理.pyc文件:
      del /s /q *.pyc
      
    • 也可直接删除所有__pycache__文件夹,清理更彻底。
  4. 重新生成初始迁移

    • 对单个App生成初始迁移:
      python manage.py makemigrations <app_name>
      
    • 对所有App批量生成:
      python manage.py makemigrations
      

    注:若之前删除了migrations文件夹,执行该命令会自动重建,需确保INSTALLED_APPS中已正确配置目标App。

  5. 标记初始迁移为已应用

    • 执行fake迁移,让Django认定初始迁移已完成:
      python manage.py migrate --fake-initial
      
    • 若仍有问题,先清除指定App的迁移记录:
      python manage.py migrate --fake <app_name> zero
      

    完成后重新执行makemigrations和migrate即可。

常见排查点

  • 检查INSTALLED_APPS配置,确认没有遗漏需要迁移的App。
  • 验证模型文件无语法错误,确保Django能正确识别模型变化。
  • 多人协作项目需检查是否存在其他分支迁移文件残留,或.gitignore未排除迁移文件导致的冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:25:26