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 将创建两个迁移(在第一个 运行 上)。一个包含 id
、created
、modified
和 name
(!) 字段,第二个添加 creator
外键。
创建两个迁移而不是一个迁移的原因可能是什么?
@PrabinSapal 是正确的,您可以使用 python manage.py reset_db --noinput
重置数据库。 Django
重置您的 Django
数据库 的命令,从所有 表 [=20] 中删除所有 数据 =].这允许您再次 运行 所有 迁移 。
考虑以下三个 类:
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 将创建两个迁移(在第一个 运行 上)。一个包含 id
、created
、modified
和 name
(!) 字段,第二个添加 creator
外键。
创建两个迁移而不是一个迁移的原因可能是什么?
@PrabinSapal 是正确的,您可以使用 python manage.py reset_db --noinput
重置数据库。 Django
重置您的 Django
数据库 的命令,从所有 表 [=20] 中删除所有 数据 =].这允许您再次 运行 所有 迁移 。