在django数据库中移动大型数据集

时间:2010-12-07 14:17:22

标签: python django database dataset migration

将大型数据集从一个django数据库移动到另一个数据集的最佳方法是什么?

我想在高级别(在django中)执行此操作,而不是在数据库级别执行此操作。我所知道的所有现有工具(dumpdata / loaddata,serializer class,django-extensions)都在内存中,因此它不处理大型数据集。

2 个答案:

答案 0 :(得分:4)

我发现这篇文章非常有用 - Migrating Django from MySQL to PostgreSQL the Easy Way

答案 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