我为我的自定义用户模型添加了一个名为“ city”的新字段。我将运行 makemigrations ,它将在迁移文件夹中创建新文件:
migrations.AddField(
model_name='customuser',
name='city',
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='City'),
)
通过运行 migration ,它确实可以在 Windows 中迁移,并且新字段将添加到我的表中。
我在 Linux 命令行中执行相同的操作;它通过运行 makemigrations 在新的迁移文件中创建相同的更改,但是当 我运行 migration ,它告诉我没有要应用的迁移,并且没有向数据库中的表添加新字段。
以前,我掩饰了这个问题,并最终创建了新的数据库,因为我处于开发阶段,并且它解决了该问题。但是,到了要点,我需要找出正在发生的事情,或者找到一种解决方法以某种方式强制执行更改。
我也尝试了迁移-fake-initial ,但问题仍然存在。
我想知道以前是否有人看过这个问题,请问可以建议吗?
谢谢
答案 0 :(得分:0)
只要我们运行python manage.py migrate
django,就将migrations-folder
中所有应用的迁移与django_migrations
模型进行同步。如果migration-folder
中存在不属于django_migrations
模型条目的迁移,则该迁移将应用于模型。每当我们使用相同的数据库表时,这很可能会应用一次。因此,我们需要检查django_migrations
的天气情况,是否已经应用迁移。即使是一个人也可以从其中手动删除一项,这不会对开发环境造成任何问题。不了解生产发展规则。很有可能不会。