如何在Google App Engine中删除Kind实体?

时间:2012-04-14 14:48:45

标签: python google-app-engine

我知道每次在Google App Engine上重新启动开发服务器时,我的所有数据都会被清除,但我需要知道,当我开始部署时,我可以通过编程方式删除所有种类的实体,但是还有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实体?

1 个答案:

答案 0 :(得分:3)

您无法删除元数据查询返回的种类。 App Engine数据存储区具有动态架构,当您删除某种类型的最后一个实体时,该架构将自动适应。 dev appserver可能在这里有一些滞后 - 或者你可能错误的是每次都删除了数据存储区,因为这不应该发生。是什么让你认为它呢?

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