【问题标题】:Limiting the amount of fixtures in django dumpdata限制 django dumpdata 中的固定装置数量
【发布时间】:2012-06-23 13:12:31
【问题描述】:

我们的一台服务器有 4 GB 的数据。但截至目前,我只对填充固定装置的少量数据感兴趣。一种简单的转储数据是:

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

但这样做的问题是它会将所有数据转储到数据库中。在测试中处理如此大量的数据没有任何意义。有什么办法可以限制我不会让事情变得沉重的数据量,而且我下载的数据本身就是完整的。

【问题讨论】:

    标签: django


    【解决方案1】:

    最新的 django (1.5.5) 没有这样的选项,但我认为它很快就会在未来的版本中出现。目前有一个票据实现了 dumpdata 命令的新功能,如果指定了模型,您可以根据主键过滤输出的内容。

    名为 django-test-utils 的 3rd 方应用程序可能可以满足您的需求。

    Use Django dumpdata to dump a subset of overall data?

    【讨论】:

    • 感谢@JosephPaetz 提出的编辑建议,这样会更好!
    【解决方案2】:

    我建议使用 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-29
      • 2013-09-02
      • 2018-07-30
      • 1970-01-01
      • 2014-01-10
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多