执行squashmigrations后立即检测到模型变更的异常问题排查及修复方案咨询
执行squashmigrations后立即检测到模型变更的异常问题排查及修复方案咨询
我先跟大家说下我的操作流程和遇到的怪事:
首先执行python manage.py showmigrations查看当前迁移状态,输出如下:
mainapp [X] 0001_initial ... [X] 0240_employer_data [X] 0241_person_metadata [X] 0242_personemployer_employerworkplace [X] 0243_personemployer_employed_personemployer_stage [X] 0244_remove_employerworkplace_and_more
接着我运行了迁移压缩命令:
python manage.py squashmigrations mainapp 0244
之后再次用showmigrations查看状态,结果变成了:
mainapp [-] 0001_squashed_0244_remove_employerworkplace_and_more (244 squashed migrations) Run 'manage.py migrate' to finish recording.
但当我执行python manage.py migrate时,却收到了错误提示:
No migrations to apply. Your models in app(s): 'mainapp' have changes that are not yet reflected in a migration, and so won't be applied. Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
这就让我完全摸不着头脑了——我刚做完迁移压缩,中间根本没改动任何内容,怎么会突然检测到模型有变更?
我又试了python manage.py makemigrations --dry-run,结果输出了一大堆类似这样的"Alter field"记录:
Migrations for 'mainapp': mainapp/migrations/0001_squashed_0244_remove_employerworkplace_and_more.py ~ Alter field field on employergroup ~ Alter field image_alt on employee ~ Alter field context on employer ...
我本来以为跑完squashmigrations之后,makemigrations应该显示"No changes detected"才对。
所以想请教各位:这到底是哪里出了问题?是什么导致了这种诡异的情况?我该怎么修复它呢?
备注:内容来源于stack exchange,提问作者Nils
相关产品推荐
相关产品推荐

