How do I get a list of namespaces on google app engine?

后端 未结 4 1562
孤独总比滥情好
孤独总比滥情好 2021-02-04 08:51

I would like to make a backup of all user data in the datastore. My application is using the new namespace feature to provide multi tenanting on a per user basis (as per the ex

相关标签:
4条回答
  • 2021-02-04 09:21

    There is also now a get_namespaces() function:

    from google.appengine.ext.db import metadata
    
    namespaces = metadata.get_namespaces() 
    

    get_namespaces() returns a list of Namespace objects. The docs also note that "metadata queries that fetch information on namespaces, kinds, and properties are generally slow to execute."

    0 讨论(0)
  • 2021-02-04 09:22

    Since SDK 1.4.0 you can use Metadata Queries:

    from google.appengine.ext.db import metadata
    
    for ns in metadata.get_namespaces():
        print "namespace: '%s'" % ns.namespace_name
    

    For NDB the import is slightly different:

    from google.appengine.ext.ndb import metadata
    
    0 讨论(0)
  • 2021-02-04 09:31

    Using ndb

    from google.appengine.ext.ndb import metadata
    all_namespaces = [ns for ns in metadata.get_namespaces()]
    

    Using datastore

    Per Datastore Metadata:

    query = client.query(kind='__namespace__')
    query.keys_only()   
    all_namespaces = [entity.key.id_or_name for entity in query.fetch()]
    
    0 讨论(0)
  • 2021-02-04 09:34

    There's no API to get a list of namespaces. You must keep a record of the ones you use. I use a model specifically for this.

    0 讨论(0)
提交回复
热议问题