2017-04-03 97 views
0

我将系统的django版本从1.6.10升级到1.8.16以进行测试。 在版本之前,我使用South进行迁移。 所以,我按照'https://docs.djangoproject.com/en/1.7/topics/migrations/#upgrading-from-south'这个文档。Django makemigrations每次都会更改'auth.user'

我的问题是每个makemigrations都检查相同的字段,然后创建迁移文件。 该字段是'auth.User'外键字段。像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), 
    ), 
] 
+0

您是否在每次makemigration后运行“迁移”? – morinx

+0

@morinx是的。只是迁移。我应该假装? – beCurious

+0

我会先删除最近创建的迁移文件,然后再次尝试makemigration – morinx

回答

0

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

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

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

相关问题