Djangoは、シーケンス値を保持したり、直接読み取ったりすることはありません。私はそれをf.exで説明しました。 この質問:2088210 / django-object-creation-and -postgres-sequences 。
Postgresqlは、行を追加しようとすると、操作の結果が成功しなかった場合(重複キーエラーが発生した場合)でもシーケンスをインクリメントします。シーケンスのインクリメントはロールバックしません。したがって、2回目に行を追加しようとしたときに機能するのはそのためです。
シーケンスが正しく設定されていない理由がわかりません。ダンプ前と復元後のシーケンス値を確認し、テーブルのmax()pkで同じことを行うことができますか?多分それは復元の8.1バグですか?知らない。私が確信していること:それはDjangoのせいではありません。