Django | NOT NULL constraint failed | When trying to reverse migrations
Я, по своей прихоти, принял плохое решение закомментировать models.OneToOneField
в одной из своих моделей, а затем мигрировать, чтобы посмотреть, исправит ли это проблему, с которой я столкнулся.
После этого я понял, что не могу просто переместить models.OneToOneField
тем же способом, что и первоначально, и он начал выбрасывать ошибку "django.db.utils.IntegrityError: UNIQUE constraint failed:", а все потому, что я пытался переместить models.OneToOneField
обратно в свою модель
Я не думал, что это большая проблема, я просто собирался сделать обратный переход на "0008_alter_profile_profile_private", потому что "0009_remove_profile_user" был переходом, который вызвал проблему с самого начала.
Но теперь он выдает ошибку "django.db.utils.IntegrityError: NOT NULL constraint failed: new__profiles_profile.user_id"
Вот весь код, который, как я понимаю, является важным:
Выдержка из моего: models.py в приложении "profiles":
class Profile(models.Model): # User Profile model
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True) #creates a OneToOneField connected to the user, that when the user gets deleted, so does the profile
riot_name = models.TextField(default="RiotUser#1234") # Riot Username
avatar = models.ImageField(upload_to='avatars', default='avatar.png') # Profile Image Field
banner = models.ImageField(upload_to='banners', default='banner.jpg') # Banner Image Field
friends = models.ManyToManyField(User, related_name='friends', blank=True) # Friends list
bio = models.TextField (default="I don't have a bio... :(") # Account bio field
updated = models.DateTimeField(auto_now=True) # Last time the stats updated
created = models.DateTimeField(auto_now_add=True) # date the account was created
profile_private = models.BooleanField(default=True)
def __str__(self):
return str(self.user)
def get_riot_name(self):
return str(self.riot_name)
Фото моих последних миграций в приложении "Профили" (выделенный файл - тот, к которому мне нужно вернуться):
Полный код ошибки, когда я пытаюсь вернуться к "0008_alter_profile_profile_private":
Я ожидал, что мне просто придется сделать какую-то странную работу или по-другому упорядочить мои миграции, где я очищаю свои последние "makemigrations", затем добавляю "null=True", делаю миграции, мигрирую, а затем пытаюсь вернуться.
Я пробовал отменить миграцию без нулевого значения, с null=True и null=False (оба нулевых значения без "makemigrations", которые не мигрировали, и я говорю это, потому что это ответ на один из постов по устранению неполадок, которые я уже прочитал)
Ручное добавление нулевых значений (null=True) к "user" позволяет мне получить текущую миграцию, проходящую без ошибок, но это все еще не позволяет мне вернуться к более старой миграции.
Я не знаю, что еще я могу сделать, кроме как перестроить свои модели
Что я упускаю из виду, что могло бы решить эту проблему и позволить мне вернуть мои миграции назад?