3

我更新了一个模型,其中一些实例已经存储在数据存储中。我删除了它的一些属性。
是否可以从数据存储中完全删除这些属性?
(我的意思不是将其设置为无)

4

2 回答 2

4

更改模型后,添加的新行将没有该列。现有行将继续具有该列。您应该能够使用下面给出的文章对现有数据运行更新以删除该列。

文档文章:https ://developers.google.com/appengine/articles/update_schema

于 2012-11-26T15:18:46.897 回答
1

@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()
于 2017-10-26T14:45:45.263 回答