跨 django 数据库移动大型数据集
Posted
技术标签:
【中文标题】跨 django 数据库移动大型数据集【英文标题】:Moving large dataset across django databases 【发布时间】:2011-05-21 15:00:00 【问题描述】:将大型数据集从一个 django 数据库移动到另一个数据库的最佳方法是什么?
我想在高级别(在 django 中)而不是在数据库级别执行此操作。我知道的所有现有工具(dumpdata/loaddata、序列化程序类、django-extensions)都在内存中,因此无法处理大型数据集。
【问题讨论】:
已加星标和 +1。我觉得这很有趣! 【参考方案1】:我在几个应用程序/数据库上遇到了同样的问题,所以写了这个脚本,它是 django 的 dumpdata 的一个分支,但是为了避免 MemoryError 而将数据分块转储
脚本可在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
【讨论】:
【参考方案2】:我发现这篇文章非常有用 - Migrating Django from mysql to PostgreSQL the Easy Way。
【讨论】:
这篇文章很好——为我在使用大型数据库加载/转储数据期间遇到的内存错误问题提供了答案。以上是关于跨 django 数据库移动大型数据集的主要内容,如果未能解决你的问题,请参考以下文章