PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Django ORM interprète mal les séquences PostgreSQL ?

Django ne conserve ni ne lit directement les valeurs de séquence de quelque manière que ce soit. Je l'ai expliqué f.ex. dans cette question :2088210/django-object-creation-and -séquences postgres .

Postgresql incrémente la séquence lorsque vous essayez d'ajouter une ligne, même si le résultat de l'opération échoue (déclenche une erreur de clé en double), l'incrémentation de la séquence n'est pas annulée. C'est donc la raison pour laquelle cela fonctionne la deuxième fois que vous essayez d'ajouter une ligne.

Je ne sais pas pourquoi vos séquences ne sont pas définies correctement, pourriez-vous vérifier quelle est la valeur de la séquence avant le vidage et après la restauration, et faire de même avec le max() pk de la table ? C'est peut-être un bug du 8.1 avec la restauration ? Je ne sais pas. Ce dont je suis sûr :ce n'est pas la faute de Django.