Изменение первичного ключа в Django вызвало ошибку ограничения не существует

#django #database-migration

Вопрос:

У меня есть проект Django с DigestIssue моделью, среди прочих, и были созданы поле первичного ключа Django auto id и мое поле number . Я хотел избавиться от дублирования и установить number как PK, потому number что он уникален и имеет те же значения, id что и . Но у меня есть внешние ключи, ссылающиеся на эту модель.

Я сомневаюсь, что они будут автоматически мигрировать после такой операции. Я попробовал, надеясь на такую автоматическую миграцию, и получил constraint "idx_16528_sqlite_autoindex_gatherer_digestissue_1" of relation "gatherer_digestissue" does not exist ошибку («sqlite» в названии ограничения-историческая вещь, я перешел на PostgreSQL через некоторое время). Я попробовал более сложный способ, следуя https://blog.hexack.fr/en/change-the-primary-key-of-a-django-model.html но получил ту же ошибку на шаге переключения ПК.

Итак, вопрос в том, как заменить в Django старый первичный ключ на новый с теми же значениями и ссылками на другие модели?

Комментарии:

1. » number является уникальным и имеет те же значения, id что и», просто удалите поле с номером, тогда зачем беспокоиться о переименовании / изменении вашего первичного ключа.

2. Это могло бы быть отличной идеей, но я забыл упомянуть — id начинается с 1 и является авто полем, но мне нужно добавить запись с number = 0 в эту модель, и я не смог установить id значение 0.