0

我知道每次在 Google App Engine 上重新启动开发服务器时,我的所有数据都会被默认清除,但我需要知道,当我开始部署时,我不仅可以通过编程方式删除所有 Kinds 的实体,还可以删除 Kind实体本身,因为我在开发/部署周期中更改它们。

看着类似的问题,我想出了这个尝试:

from model import *
from google.appengine.ext.db import *
from google.appengine.ext.db.metadata import *

for i in Kind.all():
    if i.kind_name == 'Person':
        i.delete() # Try one way
        db.delete(i) # Try another way
        print "Yes"
        break

...但这每次都会打印“是”,表明“人”类没有被删除。这只是开发服务器的工件,还是您永远无法删除 Kind 实体?

4

1 回答 1

3

您不能删除元数据查询返回的 Kind。App Engine 数据存储区有一个动态架构,当您删除一种类型的最后一个实体时,该架构会自动适应。开发应用程序服务器可能在这里有一些滞后 - 或者您可能误认为 Datastore 每次都被删除,因为这不应该发生。是什么让你认为它确实如此?

PS。不要使用 import * 这么多,它会使您的代码更难阅读,并且可能由于名称冲突而导致错误......

于 2012-04-16T04:49:20.130 回答