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

误删Django migrations文件夹后fake迁移失效,表不存在如何修复?

解决方案

问题根源

你执行的migrate --fake仅让Django在django_migrations表中标记迁移已完成,但并未在数据库中实际创建对应表;同时新生成的迁移文件与数据库中留存的旧迁移记录不匹配,导致系统无法识别表结构。

处理步骤

  1. 先备份数据库(重要,避免数据丢失)
  2. 清除对应APP的旧迁移记录
    • 直接在数据库中执行SQL命令:
      DELETE FROM django_migrations WHERE app='你的APP名称';
      
    • 或通过Django Shell执行:
      from django.db import connection
      with connection.cursor() as cursor:
          cursor.execute("DELETE FROM django_migrations WHERE app='你的APP名称';")
      
  3. 删除当前的migrations文件夹
    • Linux/macOS终端命令:
      rm -r 你的APP目录/migrations/
      
    • Windows命令提示符:
      rmdir /s /q 你的APP目录\migrations
      
  4. 重新生成迁移文件
    python manage.py makemigrations
    
  5. 执行真实迁移操作
    如果数据库中尚未创建目标表,直接执行:
    python manage.py migrate
    
    若数据库中已存在目标表(比如之前手动创建过),则执行:
    python manage.py migrate --fake-initial
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:24:41