У меня есть и существующая база данных, которую я перенес с SQLAlchemy в новую базу данных PostgreSQL.
Я переместил все первичные ключи с теми же значениями, что и раньше. Теперь у меня есть таблицы, заполненные данными, но связанные последовательности начинаются с 1. У меня есть значения pk, хранящиеся от 1 до 2000.
Теперь, когда я пытаюсь что-то сохранить с помощью Django, у меня появляется
значение дублированного ключа нарушает ограничение уникальности
относительно первичного ключа.
Как мне изменить начальные значения последовательности или избежать этой ситуации?
Мое текущее решение:
conn = psycopg2.connect(...)
for table_name in table_names:
cursor = conn.cursor()
cursor.execute("""
SELECT setval('%s_id_seq', (SELECT COALESCE(MAX(id),0)+1 FROM %s));
"""% (table_name, table_name))
Это работает для меня, но мне это не нравится.