gpt4 book ai didi

python - 为什么 Django 为 help_text 和 verbose_name 更改进行迁移?

转载 作者:IT老高 更新时间:2023-10-28 21:45:43 25 4
gpt4 key购买 nike

当我为我的任何模型字段更改 help_textverbose_name 并运行 python manage.py makemigrations 时,它会检测到这些更改并创建一个新的迁移,比如说,0002_xxxx.py

我正在使用 PostgreSQL,我认为这些更改与我的数据库无关(我想知道是否存在与这些更改相关的 DBMS)。

为什么 Django 会为此类更改生成迁移?是否可以选择忽略它们?

我可以手动将 0002_xxxx.py 的更改应用到之前的迁移 (0001_initial.py) 并安全地删除 0002_xxxx.py 吗?

有没有办法自动更新以前的迁移?

最佳答案

您可以squash it with the previous migration ,当然。

或者,如果您根本不想输出这些迁移,则可以通过将其放在 management/commands/中来覆盖 makemigrationsmigrate 命令makemigrations.py 在你的应用中:

from django.core.management.commands.makemigrations import Command
from django.db import models

IGNORED_ATTRS = ['verbose_name', 'help_text', 'choices']

original_deconstruct = models.Field.deconstruct

def new_deconstruct(self):
name, path, args, kwargs = original_deconstruct(self)
for attr in IGNORED_ATTRS:
kwargs.pop(attr, None)
return name, path, args, kwargs

models.Field.deconstruct = new_deconstruct

关于python - 为什么 Django 为 help_text 和 verbose_name 更改进行迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26503826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com