I have and existing database, which I have migrated with SQLAlchemy to a new PostgreSQL database.
I moved all primary keys with the same values as before. Now I have tables filled with data, but the associated sequences starts from 1. I have pk values stored 1 to 2000.
Now, when I try to save something with Django, I have the
duplicate key value violates unique constraint
regarding to the Primary Key.
How can I modify the sequence start values or escape this situation?
My current solution is:
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))
It works for me, but I don't like it.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…