2013-03-08 64 views
1

我不知道如何处理以下情况(显然是我的问题)。django dumpdata ORM + mongoengine

我有一个包含所有django模型数据的postgresql的django设置,但我也有mongoengine管理(让我们称之为)扩展数据。

我也有两个循环引用(从django模型到mongoengine文档PK的mongo_id点和从mongoengine到django模型PK的db_id点)。

显然,如果我运行dumpdata,我只能得到django模型数据。我怎样才能让它也从mongoengine转储数据?我有办法实现这一目标吗?

这是为了获得数据的备份。只需抓取磁盘上的文件即可轻松完成引用文件的备份。

我没有在settings.py文件中定义另一个DATABASES(主要是因为我没有被要求)。那是我需要做的吗?

感谢您的指点。

作为奖励,我会很感激,如果我可以在管理界面中的那些mongoengine,但也基地django模型。

回答

1

首先,你可以使用mongodump

在一个项目中,我们有,所以我们创建了一个管理命令,将做到这一点将数据从一个数据库移动到另一个有显著不同的模式转储数据。如果您想要以类似的方式使用它,它将具有仅移动当前Document定义的有效数据的优点,并从旧的定义中排除任何可能的剩余物。

倾销管理命令应该包含这样的

from bson import json_utils 
json_util.dumps(map(lambda x: x.to_mongo(), SomeDocument.objects.all()))