我不知道如何处理以下情况(显然是我的问题)。
我有一个带有postgresql的django设置,包含所有django模型数据,但我也有mongoengine管理(让我们称之为)扩展数据。
我也有两个循环引用(从django模型到mongoengine文件PK的mongo_id点,以及从mongoengine到django模型PK的db_id点)。
显然,如果我运行dumpdata
,我只会获得django模型数据。如何使它也从mongoengine转储数据?我有办法实现这个目标吗?
这是为了备份数据。只需抓取磁盘上的文件即可轻松完成引用文件的备份。
我没有在DATABASES
文件中定义另一个settings.py
(主要是因为我不需要)。那是我需要做的吗?
感谢您的任何指示。
作为奖励,如果我能在管理界面中使用那些mongoengine,我会很感激,还有基础django模型。
答案 0 :(得分:1)
首先,您可以使用mongodump
转储数据在一个项目中,我们不得不将数据从一个数据库移动到另一个具有明显不同模式的数据库,因此我们创建了一个管理命令来执行此操作。如果您希望以类似的方式使用它,那么它的优势在于只移动当前Document
定义的有效数据,并从旧版本中删除任何可能的剩余数据。
转储管理命令应该包含类似
的内容from bson import json_utils
json_util.dumps(map(lambda x: x.to_mongo(), SomeDocument.objects.all()))