Python 我无法将数据json加载到我的postgres数据库中

Python 我无法将数据json加载到我的postgres数据库中,python,django,postgresql,Python,Django,Postgresql,我试图执行下面的命令,但我得到了这个长错误。正如我在别处看到的建议,我也尝试过进入dbshell进行truanate,但是我得到了一个错误,即psql没有安装,或者没有找到路径,即使它应该安装 我已经成功地在postgres数据库中获取了我的表,但是它们都是空的,只有少数是空的,我觉得很奇怪。我的Json转储文件包含它所需的所有内容,但它不会传输 有人有什么想法吗 (venv) DEMOPROJECT>python manage.py loaddata "datadump.jso

我试图执行下面的命令,但我得到了这个长错误。正如我在别处看到的建议,我也尝试过进入dbshell进行truanate,但是我得到了一个错误,即psql没有安装,或者没有找到路径,即使它应该安装

我已经成功地在postgres数据库中获取了我的表,但是它们都是空的,只有少数是空的,我觉得很奇怪。我的Json转储文件包含它所需的所有内容,但它不会传输

有人有什么想法吗

(venv) DEMOPROJECT>python manage.py loaddata "datadump.json"
Traceback (most recent call last):
  File "\PycharmProjects\WebP1\venv\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "django_content_type_app_label_model_76bd3d3b_uniq"
DETAIL:  Key (app_label, model)=(admin, logentry) already exists.


django.db.utils.IntegrityError: Problem installing fixture '\DEMOPROJECT\datadump.json': Could not load contenttypes.ContentType(pk=1): duplicate key value violates unique constraint "django_content_type_app_label_model_76bd3
d3b_uniq"
DETAIL:  Key (app_label, model)=(admin, logentry) already exists.



请注意,您的唯一索引变得重复:Key(app_label,model)=(admin,logentry)已经存在

这将意味着以下情况之一:

  • json转储文件包含不正确的重复条目
  • 您已经加载或部分加载了数据库
是应用程序模型的一种注册表,旨在作为一个接口,能够访问有关模型的信息,而无需了解模型的全部细节。
django auth框架使用ContentType将权限映射到模型。 django admin应用程序通过model
LogEntry
跟踪对其对象的更改,该模型本身使用ContentTypes(这就是导致您发布错误的模型)

如果ContentType查询到一个它还不知道的模型,则会创建一个具有该模型的新记录:这意味着ContentType表的组成可能因环境而异—这取决于在中请求模型的顺序

看到您的转储已经包含ContentType的数据,并假设对于任何使用ContentType的模型,转储还包含对新ContentType表的引用,您应该可以删除本地过时数据库的ContentType表中当前的所有条目:

from django.contrib.contenttypes.models import ContentType
ContentType.objects.all().delete()
然后,您应该能够毫无问题地加载数据转储

如果要确保不会丢失任何内容,可以备份ContentType的内容:

python manage.py dumpdata contenttypes.ContentType

json文件应该很好,因为我正在学习视频教程。我的数据库在sqlite上运行得很好,但我想把它移到postresql,因为我听说它更好。在执行了
migrate--sync db
loaddata
命令之后,我收到了错误。迁移似乎加载了一些摇摆数据,但没有从同一个json转储加载任何django模型。我想loaddata命令是为了插入数据和创建的表,但我一辈子都无法完成。