2013-03-08 75 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()))