有时,在 Django 项目中运行
manage makemigrations
时,我最终会在迁移文件中出现意外的 migrations.AlterField()
条目。
我知道这些结果是 Django 在我的模型中看到该字段的定义与应用所有迁移后该字段的定义之间的差异。
有什么方法可以找出它看到的哪个差异吗?我可以查看模型中的字段并使用
_meta
获取我未明确指定的字段设置,但是有什么方法可以获取有关字段在迁移方面的外观信息吗?可以这么说,比较目标与实际状态?
我正在寻找的信息是,如果 IntegerField 上有一个
AlterField()
,那么它会被拾取,因为 max value
发生了变化,或者它有不同的 verbose_name
。
目前,我只是手动挖掘迁移文件以查找相应字段的提及,但我正在处理一个包含很多此类字段的遗留项目。所以我想知道是否有人遇到过同样的问题并找到了更好的解决方案。
在运行实际
python manage.py makemigrations app_name --dry-run -v 3
之前,您可以使用 makemigrations
检查应用程序模型中的更改。