PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Django ORM liest PostgreSQL-Sequenzen falsch?

Django speichert oder liest die Sequenzwerte in keiner Weise direkt. Ich habe es erklärt z.B. in diese Frage:2088210/django-object-creation-and -postgres-Sequenzen .

Postgresql inkrementiert die Sequenz, wenn Sie versuchen, eine Zeile hinzuzufügen, selbst wenn das Ergebnis der Operation nicht erfolgreich ist (gibt einen doppelten Schlüsselfehler aus), wird die Sequenzinkrementierung nicht zurückgesetzt. Das ist also der Grund, warum es beim zweiten Mal funktioniert, wenn Sie versuchen, eine Zeile hinzuzufügen.

Ich weiß nicht, warum Ihre Sequenzen nicht richtig eingestellt sind. Könnten Sie den Sequenzwert vor dem Dump und nach der Wiederherstellung überprüfen und dasselbe mit dem max() pk der Tabelle tun? Vielleicht ist es ein 8.1 Bug bei der Wiederherstellung? Ich weiß nicht. Ich bin mir sicher:Django ist nicht schuld.