2012-06-21 40 views
3

我們的一臺服務器有4 gb的數據。但截至目前,我只對只有少量數據進行裝配感興趣。一個簡單的傾銷的數據是:限制django dumpdata中的燈具數量

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

但這個麻煩的是這一切的數據轉儲到數據庫中。在測試中使用如此大量的數據沒有任何意義。有沒有什麼方法可以限制不會讓我感到沉重的數據量,並且我下載的數據本身是完整的。

回答

3

最新的django(1.5.5)沒有這樣的選擇,但我認爲它很快會在未來的版本中出現。目前有一個票據實現了dumpdata命令的新功能,如果指定了模型,它將允許您根據主鍵過濾輸出的內容。

稱爲django-test-utils的第三方應用程序可能可以做你需要的。

Use Django dumpdata to dump a subset of overall data?

+0

謝謝@JosephPaetz的建議編輯,更好的這種方式! – janos

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/1.9/topics/serialization/