将数据从Json文件加载到Postgresql会导致:错误“重复键值违反唯一约束 - 已存在”。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数据从Json文件加载到Postgresql会导致:错误“重复键值违反唯一约束 - 已存在”。相关的知识,希望对你有一定的参考价值。

我正在将我的Django站点部署到Google Cloud上。其中一步是将数据库更改为postgresSQL。因为我在本地使用SqlLite,我想将所有数据库迁移到postgresSql。我按照在线指南,您首先转储数据,然后将settings.py中的数据库更改为新数据库。我已经完成了这个命令的一切;

    python manage.py loaddata datadump.json

其中datadump.json是来自SQLITE的转储数据库。现在我遇到了这个错误

      django.db.utils.IntegrityError: Problem installing fixtur, Could not 
    load users.Profile(pk=3): duplicate key value violates unique 
    constraint "users_profile_user_id_key" DETAIL:  Key (user_id)=(1) already exists.

而且我不知道该怎么做。我查了一些答案如下:

postgresql duplicate key violates unique constraint

Django admin "duplicate key value violates unique constraint" Key (user_id)=(1) already exists

没有帮助,因为我无法理解发生了什么。 6年前我确实使用过mysql,但我无法理解这一点。

我设法从在线资源运行一些SQL命令,并设法为我的数据库生成这个:

https://imgur.com/a/qQNLEs7

我按照这些指南:

https://medium.com/@aaditya.chhabra/how-to-use-postgresql-with-your-django-272d59d28fa5

https://www.shubhamdipt.com/blog/django-transfer-data-from-sqlite-to-another-database/

答案
  1. 删除数据库
  2. 创建一个新的并运行迁移 python manage.py migrate

并尝试使用,从json文件导入数据,

python manage.py loaddata datadump.json

这些错误是由您使用“createsuperuser”命令创建的数据库中的超级用户对象引起的。

以上是关于将数据从Json文件加载到Postgresql会导致:错误“重复键值违反唯一约束 - 已存在”。的主要内容,如果未能解决你的问题,请参考以下文章

在不使用 S3 存储桶的情况下将数据从远程服务器的 .gz 文件加载到 redshift 的 postgresql 实例?

将 CSV 文件中的内容加载到 PostgreSQL 表中

Django dumpdata 生成无效的 json 格式文件

如何从本地 JSON 文件将数据加载到 ViewController [关闭]

无法将完整数据从 json 文件加载到数据框中

如何在不先定义表中的列的情况下将数据加载到 PostgreSQL 中?