在Django数据库间移动大数据集

3 投票
2 回答
2648 浏览
提问于 2025-04-16 08:10

怎样才能把一个很大的数据集从一个Django数据库转移到另一个数据库呢?

我想在Django的层面上来做这个事情,而不是直接在数据库里操作。我知道的所有现有工具(比如dumpdata/loaddata、序列化类、django-extensions)都是在内存中运行的,所以它们处理不了很大的数据集。

2 个回答

3

我在使用几个应用和数据库时遇到了同样的问题,所以写了这个脚本。这个脚本是对django的dumpdata功能的改进,它可以分块导出数据,避免出现内存错误。

这个脚本可以在这里找到:https://github.com/fastinetserver/django-dumpdata-chunks

使用示例:

1) 将数据导出到多个文件中:

mkdir some-folder

./manage.py dumpdata_chunks your-app-name
--output-folder=./some-folder --max-records-per-chunk=100000

2) 从文件夹中加载数据:

find ./some-folder | egrep -o "([0-9]+_[0-9]+)" | xargs ./manage.py loaddata
4

我觉得这篇文章非常有用 - 轻松将Django从MySQL迁移到PostgreSQL

撰写回答