2011-10-29 19 views
4

Djangoのdumpdata管理コマンドを使用して、すべてをメモリにロードせずにファイルにストリーミングする方法を教えてください。Django Streaming DumpData

私は1GBのSqlite3データベースをPostgreSQLに変換しようとしています。私が考えている方法の1つは、python manage.py dumpdata --all --format=json > mydatabase.jsonを使ってjsonにデータベースをダンプすることです。

これは約5分間実行されてからすべてのメモリを消費し、マシンがクラッシュしました。

答えて

3

https://code.djangoproject.com/ticket/5423からパッチを試すことができますが、よりよい方法はsqlにデータをダンプすることです。

+0

この問題は4年間にわたり知られています。一口... – Cerin

+0

これは正当な理由があると思います(チケットのコメントの説明は参考になります)。問題はdjango自体だけでなく、データベースドライバでもあります。そして、あるエンジンから別のエンジンにデータベースを移行するための他の手段があります。 –

+1

良い意味はありません。 Dumpdataは、DjangoのORMでサポートされているエンジン間でフィルタリングされたデータを移行するための、比較的クリーンでシンプルな方法を提供します。確かに、各SQLバックエンドに固有のツールを使用してデータをダンプして読み込むことができますが、それははるかに複雑になり、各バックエンドに必要なニュアンスをすべて知っている必要があります。 – Cerin