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

Viewed 2409

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 example in the docs).

The bulk loader needs the namespace for each customer to download the data. I don't keep a list of users, so I can't generate the namespaces. Is there a method of detecting all the currently used namespaces?

4 Answers

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
Related