在我的应用程序中,我需要删除一些我的模型属性
我检查了this link,但第一个问题是属性位于polymodel
,并且我无法在删除属性的情况下切换到expando
,我不知道如果我将polymodel
更改为expando
,则会发生什么情况。
那么如何从现有实体中删除属性?
我想将所有StringProperty
设置为None
,然后从模型架构中删除它们并重新部署。
其中一个属性是BooleanProperty
,我无法将此设置为None
对吗?!
或ndb.PickleProperty
...我该如何删除?
有人知道如何正确完成这项工作吗?
答案 0 :(得分:33)
如果要更新所有实体,建议的方法是读取和重写所有实体的map / reduce作业;但是它可能不值得,取决于你有多少数据 - 地图/减少也不是免费的。
还要确保在一小部分数据上测试map / reduce作业。真正从实体中删除属性是非常微妙的,即使它不再在模型类中!最好的方法可能是:
if 'propname' in ent._properties:
del ent._properties['propname']
ent.put()