PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Django ORM lendo incorretamente as sequências do PostgreSQL?


O Django não mantém ou lê diretamente os valores da sequência de forma alguma. Eu expliquei f.ex. em esta pergunta:2088210/django-object-creation-and -postgres-sequences .

O Postgresql incrementa a sequência quando você tenta adicionar uma linha, mesmo que o resultado da operação não seja bem-sucedido (gera um erro de chave duplicada), a incrementação da sequência não é revertida. Então, essa é a razão pela qual funciona na segunda vez que você tenta adicionar uma linha.

Não sei porque suas sequências não estão configuradas corretamente, você poderia verificar qual é o valor da sequência antes do dump e após a restauração, e fazer o mesmo com o max() pk da tabela? Talvez seja um bug 8.1 com a restauração? Não sei. Do que eu tenho certeza:não é culpa do Django.