将大型数据集从一个django数据库移动到另一个数据集的最佳方法是什么?
我想在高级别(在django中)执行此操作,而不是在数据库级别执行此操作。我所知道的所有现有工具(dumpdata / loaddata,serializer class,django-extensions)都在内存中,因此它不处理大型数据集。
答案 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