Django 进行迁移

Django making migrations

考虑以下三个 类:

class UUIDModel(models.Model):

    id = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)

    class Meta:
        abstract = True


class TimeStampedUUIDModel(UUIDModel):

    created = models.DateTimeField(auto_now_add=True, editable=False)
    modified = models.DateTimeField(auto_now=True, editable=False)

    class Meta:
        abstract = True

class UsefulClass(TimeStampedUUIDModel):

    name = models.CharField(max_length=150, unique=True)
    creator = models.ForeignKey('OtherClass', on_delete=models.SET_NULL, null=True)

基于这些 类,当我 运行 执行 makemigrations 命令时,Django 将创建两个迁移(在第一个 运行 上)。一个包含 idcreatedmodifiedname (!) 字段,第二个添加 creator 外键。

创建两个迁移而不是一个迁移的原因可能是什么?

@PrabinSapal 是正确的,您可以使用 python manage.py reset_db --noinput 重置数据库。 Django 重置您的 Django 数据库 的命令,从所有 表 [=20] 中删除所有 数据 =].这允许您再次 运行 所有 迁移