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

删除Django迁移文件后,makemigrations与migrate执行异常求助

解决方案

1. 清理数据库中的迁移记录

问题根源是数据库的django_migrations表仍保留着已删除的迁移文件记录,导致Django判断逻辑混乱。需要删除涉事app的迁移记录:

  • 进入Django交互式shell:
./manage.py shell
  • 在shell中执行SQL删除操作:
from django.db import connection
with connection.cursor() as cursor:
    cursor.execute("DELETE FROM django_migrations WHERE app IN ('admin', 'auth', 'axes', 'contenttypes', 'sessions');")

2. 恢复或重新生成迁移文件

  • Django自带app(admin、auth、contenttypes、sessions):直接强制生成新的迁移文件:
./manage.py makemigrations admin auth contenttypes sessions
  • 第三方app(axes):优先通过重装包恢复自带的迁移文件:
pip install --force-reinstall django-axes==5.31.0

如果重装后仍无迁移文件,再执行强制生成命令:

./manage.py makemigrations axes

3. 伪应用初始迁移

由于数据库中已经存在这些app的表,使用--fake-initial参数让Django跳过实际表创建,只同步迁移记录:

./manage.py migrate --fake-initial

4. 验证修复效果

依次执行以下命令,确认不再出现异常提示:

./manage.py makemigrations
./manage.py migrate

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:01:09