Skip to main content
 首页 » 编程设计

python之如何删除 GAE 中所有 namespace 中的所有实体

2025年05月04日13mengfanrong

Google App Engine 允许管理数据存储 http://code.google.com/appengine/docs/adminconsole/datastoreadmin.html

但是没有提到命名空间,除了默认命名空间。

我有很多命名空间,现在我想删除数据存储区中的所有实体/命名空间。有什么简单的方法吗?

请您参考如下方法:

不确定这是否符合简单的条件,但是......

您可以使用 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)