我想将一些实体转换为新名称。如何查询没有定义模型类的实体。
例如,我有这样的实体(它被简化为更易读):
class Some(ndb.model):
name = ndb.StringProperty()
我想将其重命名为:
class SomeFile(ndb.model):
name = ndb.StringProperty()
我该怎么做?
如果要将Some
重命名为SomeFile
,则不会再查询Some
,而只会查询数据存储区中的数据。
答案 0 :(得分:1)
您可以更改模型类名称,并通过覆盖模型的Kind
方法将其指向现有数据存储区_get_kind()
。
class SomeFile(ndb.Model):
@classmethod
def _get_kind(cls):
return 'Some'
现在,您可以在python代码中使用SomeFile
,同时在数据存储区中保留Some
个实体。
https://cloud.google.com/appengine/docs/python/ndb/modelclass#introduction
答案 1 :(得分:0)
也许我不理解你的问题,但这是你想要的吗?:
for x in Some.query():
y = SomeFile()
y.name = x.name
y.put()
x.key.delete()
虽然你应该通过批量生产来提高效率。