#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.