我有一个现有的使用MongoDB的Django nonrel had应用程序。对象的相关字段似乎是由ObjectID存储的。例如,我有一个通过OneToOneField与用户对象相关的UserProfile模型。存储的对象数据是这样的:
{
"_id": {
"$oid": "4f67540040e0460001000001"
},
"user_id": {
"$oid": "4f67540040e0460001000000"
},
....
}我将应用程序部署在Heroku上,Heroku使用git存储库获取django nonrel项目和django-mongodb-engine。我使用的pymongo版本是2.1.1。我不确定由于哪个库的更新,我发现相关字段似乎不再由ObjectId存储。新对象数据的存储方式如下:
{
"_id": {
"$oid": "4f67540040e0460001000001"
},
"user_id": "4f67540040e0460001000000",
....
}问题是它会由于数据格式不一致而导致错误。我不仅无法获取先前存储的对象的相关对象(获取"DoesNotExist: UserProfile matching query I Not exist.")。Piston也无法获取新保存对象的相关对象。
我试图在requirements.txt的git仓库URL中添加修订说明符,但没有成功,这很奇怪。
有人知道发生了什么吗?也许我必须做一个mongoDB数据更新来修复那些相关的数据id值?
发布于 2012-05-30 17:35:07
你之前用的是什么版本?-还需要知道django-nonrel / djangotoolbox的版本。
看起来您可能必须手动迁移数据--但最好确定更改发生的位置,以确保它不是短暂的更改。
https://stackoverflow.com/questions/10813139
复制相似问题