在 Django 模型中添加新字段

Adding new field in Django model

我目前正在做一个 Django 项目,大约有 30 个模型,模型之间有很多关系(例如,外键关系)。

我的疑问是“6 个月后,假设我想在 models.py 中的 model/table(s) 之一中添加一个新字段,并且进行迁移,将创建新的迁移文件,而不会影响 6 个月前创建的初始迁移文件。"

在不同表中添加新列后,关系是否会保持不变? (或)我必须去 pgadmin 控制台并相应地调整它们吗?

一种方法是清除所有迁移并重新开始,但通常不建议这样做,尤其是在有生产数据(或)数据库模式经常更改的情况下。

@Mahesh,你可以使用 --fake-initial 来避免新迁移时现有表的错误(当你想添加新列时)。

关系将保持不变,因为您已经声明了它,除非您在新的迁移中更改它。

How to add a new field to a model with new Django migrations?

在文档中:https://docs.djangoproject.com/en/3.0/ref/django-admin/#cmdoption-migrate-fake-initial

如果您不更改 Django 版本,在模型上添加新字段不会产生任何问题,即使在多年后也是如此。但是,在某些情况下这可能会产生问题。例如,如果 Django 已更新并且您已安装最新版本。