使用Django重置Postgres数据库的主键

Chr*_*ris 2 django postgresql primary-key auto-increment

我遇到了糟糕的表问题,因为我创建了自己的用户类而不是切换到默认的Django类.无数头痛后,我们决定只是做一个干净python manage.py resetsyncdb.创建了一个新用户,但User.id的主键计数器从前一个用户开始,这意味着在创建使用User.id作为主键的其他表时,它们总是处于关闭状态.

我怎么能完全重写,以便从1开始,或者改变计数器,使它现在为2(因为我创建了一个用户)?如果它涉及SQL,请告诉我在哪里放置它,因为我的应用程序托管在Heroku上.

谢谢!

Lak*_*sad 6

默认情况下,Postgres会为该类型创建的所有列创建一个新序列serial.django auth用户的默认名称是auth_user,因此默认序列名称将是auth_user_id_seq或类似的名称.

你可以找到下一个序列值是什么

SELECT nextval('auth_user_id_seq');
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式将其设置为1:

SELECT setval('auth_user_id_seq', 1);
Run Code Online (Sandbox Code Playgroud)