【问题标题】:How do I delete all Entities in all namespaces in GAE?如何在 GAE 中删除所有命名空间中的所有实体?
【发布时间】:2011-03-22 10:42:56
【问题描述】:

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

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

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

【问题讨论】:

标签: python google-app-engine namespaces google-cloud-datastore


【解决方案1】:

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

您可以使用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(keys)
猜你喜欢
  • 2012-03-08
  • 2016-02-04
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-02
  • 1970-01-01
相关资源
最近更新 更多