首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django选择性Dumpdata

Django选择性Dumpdata
EN

Stack Overflow用户
提问于 2011-11-29 23:42:15
回答 5查看 18.4K关注 0票数 46

是否可以有选择地过滤哪些记录Django的dumpdata管理命令输出?我有几个模型,每个模型有数百万行,我只想转储符合特定条件的一个模型中的记录,以及引用这些记录的所有外键链接记录。

考虑一下这个用例。假设我有一个生产数据库,其中我的用户模型有数百万条记录。我还有其他几个模型(日志、交易、购买、书签等)都引用了用户模型。我想在我的Django应用程序上进行开发,我想使用真实的数据进行测试。但是,我的生产数据库太大了,我无法实际地拍摄整个数据库的快照并将其加载到本地。因此,理想情况下,我希望使用dumpdata将50个随机用户记录和所有相关记录转储到JSON,并使用它们填充开发数据库。

有什么简单的方法可以做到这一点吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-11-30 00:07:42

我认为django-fixture-magic可能值得一看。

你可以在Scrubbing your Django database中找到一些额外的背景信息。

票数 23
EN

Stack Overflow用户

发布于 2011-11-30 03:54:49

这段代码可能会对您有所帮助(它跟踪并序列化关系):

http://djangosnippets.org/snippets/918/

您还可以使用该管理命令,并覆盖您希望返回自定义查询集的任何模型的默认管理器。

票数 7
EN

Stack Overflow用户

发布于 2011-11-30 00:24:57

这不是对我的问题的简单回答,但是我在Django的内置natural keys feature上发现了一些有趣的文档,它允许在没有主键的情况下表示序列化的记录。不幸的是,它看起来并没有完全集成到dumpdata中,而且有一个旧的outstanding ticket完全依赖于自然键。

serializers.serialize()函数似乎还允许序列化特定模型实例的任意列表。

大概,如果我在所有模型上都实现了一个natural_key()方法,然后调用serializers.serialize(Users.objects.filter(criteria)),,那么它就可以实现我想要的结果了。我可能需要编写一个函数来抓取所有的FK引用,并将它们包含在传递给serialize()的对象列表中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8313558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档