django.db.utils.IntegrityError:从以前的服务器上载psql备份时,重复的键值违反了唯一约束错误

django.db.utils.IntegrityError:从以前的服务器上载psql备份时,重复的键值违反了唯一约束错误,django,python-3.x,django-models,Django,Python 3.x,Django Models,我最近更改了服务器,因此创建了psql数据库的备份。在新服务器中,我使用了 psqldbname

我最近更改了服务器,因此创建了psql数据库的备份。在新服务器中,我使用了
psqldbname
备份我的数据库。尽管django文件(包括迁移)(完全相同)完全相同,但备份过程显示出一些错误,但不知何故备份成功了。 一切正常,但问题是当我创建新模型时(示例):

当我进行迁移时,它会成功,但在迁移过程中会显示以下错误:

django.db.utils.IntegrityError: duplicate key value violates unique constraint "django_migrations_pkey" DETAIL:  Key (id)=(121) already exists.
使用stackoverflow的其他答案,我尝试了以下方法:

python manage.py sqlsequencereset MyApp | python manage.py dbshell
但这也显示了一个错误:

ERROR:  relation "basicinformation_studentroutineinformation" does not exist
LINE 1: ...alesce(max("id"), 1), max("id") IS NOT null) FROM "basicinfo...
问题是现在我无法在任何应用程序中制作任何模型。所有应用程序中都存在相同的错误。 解决办法可能是什么?
由于两台服务器中的型号相同,备份过程中可能会出现什么问题?那么可能会出现什么问题?

看起来您的主键序列在某个点上已取消同步。从备份中恢复时,旧版本的postgres没有继承序列位置,但是存在一些问题。我不认为这是你的问题,因为违规是在id=121而不是1

我建议通过运行以下命令手动重置pk序列位置:

选择
setval(pg_get_serial_sequence('django_migrations','id'),max(“id”))
从…起
“django_移民”;
我还将检查
django_migrations
表,以确保所有迁移看起来都是正确的,即没有遗漏/不应该存在的东西

然后还要检查其他模型,确保可以插入新行。如果pk上有更多的唯一约束冲突,那么在其他表上运行相同的SQL脚本

ERROR:  relation "basicinformation_studentroutineinformation" does not exist
LINE 1: ...alesce(max("id"), 1), max("id") IS NOT null) FROM "basicinfo...