我偶尔会遇到一个问题,其中
manage.py makemigrations
会生成迁移,据我所知,这些迁移涉及我没有接触过的模型或模型字段。
有什么方法可以找出模型和数据库manage.py makemigrations
之间的差异,从而使其认为需要迁移?
我搜索了网络并检查了django-admin和manage.py文档,但找不到一种方法来使
makemigrations
“自我解释”或以任何其他方式找到我的模型和数据库之间的差异。
任何提示将不胜感激:)
python manage.py makemigrations --dry-run
https://docs.djangoproject.com/en/5.0/ref/django-admin/#cmdoption-makemigrations-dry-run
编辑:
我认为这里有些混乱。进行迁移不会与数据库的状态进行比较。如果您从头开始为该模型运行所有现有迁移,它会与模型的状态进行比较。
因此,如果当前迁移为您提供了长度为 30 的 CharField,并且您当前的模型定义已将其更改为 32,则
makemigrations
将使您的字段更改为 32。
因此,您创建的迁移(或者它向您显示的迁移
--dry-run
- 同样的事情) - is 数据库现在的样子和您的模型的样子之间的差异,假设没有人在其中进行任何手动更改数据库(如果您使用像 django provices 这样的迁移套件,您绝对不应该这样做)。