从 Django 创建 SQL 插入脚本以填充 PostgreSQL 数据库

Posted

技术标签:

【中文标题】从 Django 创建 SQL 插入脚本以填充 PostgreSQL 数据库【英文标题】:Create an SQL inserting script from Django to populate a PostgreSQL database 【发布时间】:2016-04-21 03:12:01 【问题描述】:

我目前正在尝试在 Django 模型中插入一些从多个解析文件中提取的复杂数据。因为我有大量数据要插入,所以我不想将 Django 脚本中的查询乘以到数据库。

有没有办法生成 SQL 脚本,而不是执行所有 object_to_insert.save() 并使用 psql -f my_script.sql 插入脚本?

【问题讨论】:

【参考方案1】:

如果只有一张表,Django ORM查询集中有bulk_create方法:https://docs.djangoproject.com/en/stable/ref/models/querysets/#bulk-create

此方法获取对象列表并以一种有效的方式将它们插入到数据库中,如果数据库支持多次插入,通常只在一个查询中。

【讨论】:

这是一个非常有趣的可能性,但我有多个相互连接的表,所以这不是我能想象的最优化的解决方案。 你知道所有被插入对象的主键吗? 我定义了一些主键,但是有一些带有链接对象的表使用 django 默认序列字段作为主键。我认为创建插入脚本可能是个问题。

以上是关于从 Django 创建 SQL 插入脚本以填充 PostgreSQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

Django - 使用给定的 sql 转储创建其他模型并填充数据 [重复]

sql [sql]为填充的表生成插入脚本

如何从脚本中删除多余的插入语句以提高性能[重复]

如何从日志文件创建sql插入脚本

从 SQL 代理运行时 SSIS 脚本任务失败

从脚本填充数据库时出现 Django Heroku DataError