我最近将大量数据从旧数据库导入到新的PostgreSQL数据库中,作为新Django站点中模型的基础.

我使用了旧数据库中的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的新行?

推荐答案

运行sqlsequencereset,它会打印出你需要的所有重置命令.

Django相关问答推荐

Django-将html数据保存到quillfield中

Django中的判断约束

获取PyCharm中继承方法的未解析属性引用

我如何告诉Django如何恢复自定义迁移?

如何在Django模板中为无效词典查找打开异常?

Django rest framework, AttributeError: 'str' object has no attribute 'data' 无法使用表单上传图片

在Django测试get方法中获取HttpResponseNotFound

如何在 Django 模型中存储元组列表

Django 转储数据将附加数据添加到 json 导出

如何重命名标准 django-registration 模板的名称

Django ORM:获取每个类别的月平均价格

Django PositiveIntegerField 中的 0 值?

Django Calendar日历小部件?

Django 自定义用户邮箱帐户验证

如何使 Django 表单字段仅包含字母数字字符

Django:AppRegistryNotReady()

django select_related - 何时使用它

Heroku & Django:OSError: No such file or directory:'/app/{myappname}/static'

有没有一种简单的方法可以从 CharField 填充 SlugField?

如何检测 Heroku 的环境?