谷歌应用程序引擎允许管理数据存储 http://code.google.com/appengine/docs/adminconsole/datastoreadmin.html如何删除GAE中所有名称空间中的所有实体?
但目前还没有关于命名空间的提及,除了默认的命名空间。
我有很多命名空间,现在我想删除数据存储区中的所有实体/命名空间。有没有简单的方法来做到这一点?
谷歌应用程序引擎允许管理数据存储 http://code.google.com/appengine/docs/adminconsole/datastoreadmin.html如何删除GAE中所有名称空间中的所有实体?
但目前还没有关于命名空间的提及,除了默认的命名空间。
我有很多命名空间,现在我想删除数据存储区中的所有实体/命名空间。有没有简单的方法来做到这一点?
不知道这是否有资格获得简单,但...
您可以使用mapper api创建将遍历整个集合的功能,你就可以用db.GqlQuery("SELECT * FROM __namespace__")
使用的所有命名空间所以假设你有一个映射你所有的实体like this one的函数叫做each()
。您可以在任务中或在本地使用remote_api enabled console的帮助来运行以下内容以删除所有内容。
for namespace in each(db.GqlQuery("SELECT * FROM __namespace__")):
# set the namespace
namespace_manager.set_namespace(namespace.namespace_name)
# get all the kinds used in this namespace
for kind in each(db.GqlQuery("SELECT * FROM __kind__")):
# get entity 'keys only'
for key in each(db.GqlQuery("SELECT __key__ FROM %s" % kind.kind_name)):
db.delete(key)
批量删除会提高删除时间。 'db.delete(键)' – crizCraig 2011-09-28 20:29:08
http://code.google.com/appengine/docs/adminconsole/datastoreadmin.html#Deleting_Entities_in_Bulk当然? – 2011-03-22 12:09:39
@Jakob Bowyer:“当然”是什么?默认命名空间? – rmflow 2011-03-22 12:29:18
你需要做一次吗? – systempuntoout 2011-03-22 14:13:53