如何在Google App引擎上获取命名空间列表?

No *_*ame 12 google-app-engine

我想备份数据存储区中的所有用户数据.我的应用程序使用新的命名空间功能为每个用户提供多租户(根据文档中的示例).

批量加载程序需要每个客户的命名空间来下载数据.我没有保留用户列表,因此我无法生成名称空间.有没有检测所有当前使用的命名空间的方法?

sys*_*out 16

SDK 1.4.0开始,您可以使用元数据查询:

from google.appengine.ext.db import metadata

for ns in metadata.get_namespaces():
    print "namespace: '%s'" % ns.namespace_name
Run Code Online (Sandbox Code Playgroud)

对于NDB,导入略有不同:

from google.appengine.ext.ndb import metadata
Run Code Online (Sandbox Code Playgroud)


c r*_*ald 6

现在还有一个get_namespaces()函数:

from google.appengine.ext.db import metadata

namespaces = metadata.get_namespaces() 
Run Code Online (Sandbox Code Playgroud)

get_namespaces()返回Namespace对象的列表.文档还指出,"获取有关名称空间,种类和属性的信息的元数据查询通常执行起来很慢."