Django создание миграций
Рассмотрим следующие три класса:
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
базу данных , удаляя все данные из всех таблиц . Это позволит вам запустить все миграции снова.