将Django模型字段移动到子类导致错误迁移的正确方法

时间:2016-06-17 18:50:45

标签: python django django-models

我正试图在我的Django模型上执行表面上看起来像是noop的东西。它目前看起来像

class OrgParent(model.Model):
    name = models.CharField()
    organization = models.ForeignKey(...)
    order = models.IntegerField()

    class Meta:
        abstract = True
        unique_together = (('name', 'order'),)
        ordering = ('order',)

class OrgChild(OrgParent)
    other_field = models.CharField()

我想把它压扁,以便它只是一个模型:

class OrgChild(models.Model)
    other_field = models.CharField()
    name = models.CharField()
    organization = models.ForeignKey(...)
    order = models.IntegerField()

    class Meta:
        abstract = True
        unique_together = (('name', 'order'),)
        ordering = ('order',)

然而,当我这样做时manage.py makemigrations上的Django(运行1.7,计划很快升级)会创建一个实际删除我整个表的自动迁移!

  xxxx_auto_xxxxxxx_xxxxx.py:
    - Alter unique_together for organizationchild (0 constraint(s))
    - Remove field organization from organizationchild
    - Delete model OrganizationChild

我认为这个新模型的数据库支持将以完全相同的方式工作,因此我实际上并不需要迁移。有没有办法忽略迁移?我应该检查迁移但是删除其中的操作吗?是否有一种首选的Django方式来管理此迁移?

0 个答案:

没有答案