我更新了一些模型,其中某些实例已存储在数据存储区中。我删除了一些属性
是否可以从数据存储中完全删除这些属性?
(我不是说将其设置为无)
答案 0 :(得分:4)
更改模型后,添加的新行将不包含该列。现有行将继续具有该列。您应该能够使用下面给出的文章对现有数据运行更新以删除该列。
文档文章:https://developers.google.com/appengine/articles/update_schema
答案 1 :(得分:0)
@ abel的答案中的文章包含了一些重要的相邻概念,但对于如何实际删除列并不是很清楚。 (有一些高级描述,没有代码示例。)
这里的答案策略对我有用:https://stackoverflow.com/a/12701172/7470370
更完整的例子......
from google.appengine.ext import ndb
class Model_1(ndb.Model):
propToKeep = ndb.StringProperty()
propToDelete = ndb.StringProperty()
entities = Model_1.query().fetch() # get all records
for entity in entities:
if 'propToDelete' in entity._properties:
del entity._properties['propToDelete']
entity.put()