@vikholodov

Как исправить ошибку already exists при load data?

Сделал дамп с sqllite, --exclude auth.permission --exclude contenttypes, все как надо.
На сервере на строил pgsql, делаю load data, и вылетает:
Could not load accounts.UserProfile(pk=1): duplicate key value violates unique constraint "accounts_userprofile_user_id_key"
DETAIL:  Key (user_id)=(1) already exists.

Попробовал убить все миграции, сделал миграции по новой, база пустая, ничего туда не добавлял, делаю load data, та же фигня. Ради эксперимента удалил из дампа запись на которую он ругается, ожидаемо начал ругаться на pk=2.
Ok, погуглил, нашел магическую мега команду ./manage.py sqlsequencereset app1 app2, не помогло. В чем может быть проблема?
модель UserProfile представляет из себя нечто такое:
class UserProfile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    avatar = models.ImageField(blank=True, upload_to='user_avatar')
    ...
  • Вопрос задан
  • 710 просмотров
Решения вопроса 1
@immaculate
Программист-путешественник
Подозреваю, но не уверен, что у вас при создании модели User автоматически создается UserProfile по сигналу. Вообще, создание профиля таким образом устарело уже лет 5-6 как. Давно надо переходить на использование собственной модели пользователя, в которую и добавлять недостающие поля.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы