我知道每次在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实体?
答案 0 :(得分:3)
您无法删除元数据查询返回的种类。 App Engine数据存储区具有动态架构,当您删除某种类型的最后一个实体时,该架构将自动适应。 dev appserver可能在这里有一些滞后 - 或者你可能错误的是每次都删除了数据存储区,因为这不应该发生。是什么让你认为它呢?
PS。不要使用import *这么多,它会使你的代码更难阅读,并可能因名称冲突而导致错误......