Django manage.py makemigrations:显示模型和数据库之间的差异

问题描述 投票:0回答:1

我偶尔会遇到一个问题,其中

manage.py makemigrations
会生成迁移,据我所知,这些迁移涉及我没有接触过的模型或模型字段。 有什么方法可以找出模型和数据库
manage.py makemigrations
之间的差异,从而使其认为需要迁移?

我搜索了网络并检查了django-admin和manage.py文档,但找不到一种方法来使

makemigrations
“自我解释”或以任何其他方式找到我的模型和数据库之间的差异。

任何提示将不胜感激:)

django django-models manage.py
1个回答
0
投票

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 这样的迁移套件,您绝对不应该这样做)。

© www.soinside.com 2019 - 2024. All rights reserved.