如何删除 GAE 中所有命名空间中的所有实体?

发布于 2024-10-25 02:39:17 字数 286 浏览 2 评论 0原文

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

但除了默认命名空间之外,没有提及任何命名空间。

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

Google App Engine allows to administrate the Datastore
http://code.google.com/appengine/docs/adminconsole/datastoreadmin.html

but there is no mention about namespaces, except default namespace.

I have alot of namespaces and now I want to delete all entities/namespaces in the Datastore. Is there simple way to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

愿与i 2024-11-01 02:39:17

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

您可以使用 Mapper api 来创建将迭代整个集合的函数,并且您可以通过 db.GqlQuery("SELECT * FROM __namespace__") 获取使用的所有命名空间

因此假设您有一个函数映射所有实体就像这个称为each()。您可以在任务中或在启用了remote_api的控制台的帮助下在本地运行以下命令删除所有内容。

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)

Not sure if this would qualify for simple, but...

You could use the mapper api to create functions that will iterate over entire collections, and you can get all the namespaces used via db.GqlQuery("SELECT * FROM __namespace__")

So assuming you have a function for mapping over all of your entitys like this one called each(). You could run the following in a task or locally with the help of remote_api enabled console to delete everything.

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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文