清除所有内容后Django仍显示旧迁移,无法生成新迁移
Django迁移残留问题的解决办法
- 检查Python虚拟环境:若使用虚拟环境,旧迁移文件可能残存在虚拟环境的
site-packages目录(比如自行开发的app被安装到了虚拟环境),直接删除虚拟环境后重新创建,再重装所有依赖。 - 清理Django缓存与编译文件:执行命令
python manage.py clearcache,同时手动删除项目所有目录下的__pycache__文件夹。 - 核对INSTALLED_APPS列表:
showmigrations会显示所有已安装app(包括第三方库)的迁移记录,确认是否误将第三方库的迁移当成了自己的旧迁移。 - 验证数据库配置:检查
settings.py中的DATABASES配置,确保确实指向新创建的数据库,避免因配置错误连接到未彻底清理的旧库。 - 手动生成迁移:先为每个app创建
migrations文件夹,再执行python manage.py makemigrations <app_name>逐个生成迁移,而非直接执行全局的makemigrations。 - 检查版本控制:若使用Git,确认是否未将
migrations目录加入.gitignore,导致删除的文件被版本控制系统自动恢复。

内容的提问来源于stack exchange,提问作者Aziz Ismailov
相关产品推荐
相关产品推荐

