最近、新しいDjangoサイトのモデルの基礎として、古いデータベースから新しいPostgresqlデータベースに多くのデータをインポートしました。
古いデータベースのIDを使用しました(さまざまなテーブルの行が相互に参照しているため)が、すべてが連続しているわけではなく、多くの場合、大きなギャップがあります。
Djangoアプリを介して新しいオブジェクトを追加すると、1から始まるIDが使用されていることに気付きました。これは、IDが非常に低い行がない限り問題ではありません。
しかし、レガシーデータの最初の行に到達すると、postgresは明らかに次のように文句を言います。
ERROR: duplicate key value violates unique constraint "django_comments_pkey"
DETAIL: Key (id)=(25) already exists.
テーブルの説明を見ると、各テーブルである種のシーケンスをリセットする必要があると思います。
Table "public.django_comments"
Column | Type | Modifiers
-----------------+--------------------------+--------------------------------------------------------------
id | integer | not null default nextval('django_comments_id_seq'::regclass)
...
そのシーケンスをリセットして、現在の最大IDよりも高いIDで新しい行が追加されるようにするには、何をする必要がありますか?