5

サーバーの1つに4GBのデータがあります。しかし、今のところ、私はフィクスチャのデータを少しだけ入力することにしか興味がありません。データを簡単にダンプできるのは次のとおりです。

 python manage.py dumpdata --indent=4 > shipping_fixture.json

しかし、これに伴う問題は、すべてのデータをデータベースにダンプすることです。テストでこのような大量のデータを処理しても意味がありません。私にとって物事を重くしないデータの量を制限することができ、ダウンロードしたデータ自体が完全である方法はありますか?

4

2 に答える 2

4

最新のdjango(1.5.5)にはそのようなオプションはありませんが、将来のバージョンで間もなく登場すると思います。現在、dumpdataコマンドの新機能を実装するチケットがあります。これにより、モデルが指定されている場合に、主キーに基づいて出力されるものをフィルタリングできます。

django-test-utilsと呼ばれるサードパーティのアプリは、おそらく必要なことを実行できます。

Django dumpdataを使用して、全体的なデータのサブセットをダンプしますか?

于 2012-06-21T14:39:05.833 に答える
1

djangoシリアル化[1]を使用することをお勧めします。カスタムクエリをデータファイルにダンプするのに役立ちます。

データをダンプするには:

from django.core import serializers

with open("/tmp/file.json", "w") as f:
    serializers.serialize('json', query, stream=f)

そして、データをロードするには:

with open("file.json", "r") as file:
    data = file.read()

for obj in serializers.deserialize("json", data):
    do_something_with_the_object(obj)

[1] https://docs.djangoproject.com/en/dev/topics/serialization/

于 2015-09-09T17:13:12.883 に答える