PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Django ORM ha letto male le sequenze PostgreSQL?

Django non tiene né legge direttamente i valori della sequenza in alcun modo. L'ho spiegato f.ex. in questa domanda:2088210/django-object-creation-and -sequenze-postgres .

Postgresql incrementa la sequenza quando si tenta di aggiungere una riga, anche se il risultato dell'operazione non ha esito positivo (solleva un errore di chiave duplicata) l'incremento della sequenza non viene ripristinato. Quindi, questo è il motivo per cui funziona la seconda volta che provi ad aggiungere una riga.

Non so perché le tue sequenze non sono impostate correttamente, potresti controllare qual è il valore della sequenza prima del dump e dopo il ripristino e fare lo stesso con max() pk della tabella? Forse è un bug 8.1 con il ripristino? Non lo so. Di cosa sono sicuro:non è colpa di Django.