Striver
Июнь 6, 2017 16:08:17
Здравствуйте!
Возник такой вопрос. Есть модель, в ней поле id явно не прописано, но по факту создаётся.
Если через Python/Django/Формы_на_HTML_странице добавлять записи, то работает счётчик, номер id увеличивается.
Но пришлось воспользоваться другими средствами для копирования/восстановления всей базы. У меня это Postgres, базы я копировал через pgAdmin3.
Теперь у меня 15000 записей в таблице, но добавление записи через Django добавляет запись с маленьким номером (в данном случае 38), естественно что-то затирая при этом.
Как мне указать в базе или в Django, какие номера теперь должны присваиваться?
FishHook
Июнь 6, 2017 16:15:34
Striver
естественно что-то затирая при этом.
Да бростье, INSERT запрос не может ничего затирать. Откуда вы взяли, что что-то затирается?
Striver
Июнь 6, 2017 16:45:46
Извиняюсь, специально вручную через командную строку сейчас попробовал, затирания действительно не происходит.
Выпадает ошибка:
django.db.utils.IntegrityError: duplicate key value violates unique constraint "base1_model1_pkey"
DETAIL: Key (id)=(2) already exists.
Вопрос, как сказать системе “присваивать id с номером N” всё-равно остаётся.
Striver
Июнь 6, 2017 16:57:22
Сам спросил, сам себе отвечаю.
В Postgres имеются некие “Последовательности”. Там прописаны текущие номера id. В pgAdmin3 их можно исправлять вручную.