Django 使迁移每次都对 'auth.user' 进行更改

Django makemigrations make change for 'auth.user' every time

提问人:beCurious 提问时间:4/3/2017 最后编辑:beCurious 更新时间:4/3/2017 访问量:805

问:

我将系统的 django 版本从 1.6.10 升级到 1.8.16 进行测试。 在版本之前,我使用 South 进行迁移。 因此,我遵循了“https://docs.djangoproject.com/en/1.7/topics/migrations/#upgrading-from-south”此文档。

我的问题是每个makemigrations都检查相同的字段,然后制作迁移文件。 该字段是“auth”。用户的外键字段。喜欢。user = models.ForeignKey('auth.User')

这是我针对该问题的屏幕截图。

enter image description here

enter image description here

这是该外键字段的示例代码。

cancelled_by = models.ForeignKey(
    'auth.User',
    verbose_name=_("Cancelled by"),
    related_name='project_cancel',
    blank=True,
    null=True
)

我该如何解决?

编辑: 这是我在所有迁移后由 makemigrations 创建的迁移文件。

class Migration(migrations.Migration):

dependencies = [
    ('meeting', '0003_meeting_proposal'),
]

operations = [
    migrations.AlterField(
        model_name='meeting',
        name='manager',
        field=models.ForeignKey(verbose_name='Manager', blank=True, to=settings.AUTH_USER_MODEL, null=True),
    ),
]
Django 模型 迁移 Django-South

评论

0赞 morinx 4/3/2017
您是否在每次 makemigration 后运行“migrate”?
0赞 beCurious 4/3/2017
@morinx是的。只需迁移即可。我应该假吗?
0赞 morinx 4/3/2017
我会先删除最近制作的迁移文件,然后再次尝试makemigration
0赞 beCurious 4/3/2017
@morinx好的,我会尝试将结果添加到问题中。
0赞 morinx 4/3/2017
此外,为每个迁移文件提供“sqlmigrate”命令的结果

答:

0赞 morinx 4/3/2017 #1

我会先删除最近制作的迁移文件,然后再次尝试makemigration。

删除迁移文件是一种常见的解决方案,因为 Django 足够聪明,无论文件夹中发生了什么更改,都可以轻松重新创建它们。

您也可以伪造这些迁移,但我更喜欢保持我的迁移文件夹干净整洁。