2012-06-21 46 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/