|
a/scripts/backup_project.py |
|
b/scripts/backup_project.py |
|
... |
|
... |
49 |
ac._id for ac in M.AppConfig.query.find(dict(project_id=c.project._id)) ]
|
49 |
ac._id for ac in M.AppConfig.query.find(dict(project_id=c.project._id)) ]
|
50 |
visited_collections = {}
|
50 |
visited_collections = {}
|
51 |
for m in Mapper.all_mappers():
|
51 |
for m in Mapper.all_mappers():
|
52 |
cls = m.mapped_class
|
52 |
cls = m.mapped_class
|
53 |
cname = cls.__module__ + '.' + cls.__name__
|
53 |
cname = cls.__module__ + '.' + cls.__name__
|
|
|
54 |
mgr = m.collection.m
|
54 |
sess = m.session
|
55 |
sess = m.session
|
55 |
if sess is None:
|
56 |
if sess is None:
|
56 |
log.info('Skipping %s which has no session', cls)
|
57 |
log.info('Skipping %s which has no session', cls)
|
57 |
continue
|
58 |
continue
|
58 |
dbname = sess.impl.db.name
|
59 |
dbname = sess.impl.db.name
|
|
... |
|
... |
76 |
if not os.path.exists(os.path.join(dirname, dbname)):
|
77 |
if not os.path.exists(os.path.join(dirname, dbname)):
|
77 |
os.mkdir(os.path.join(dirname, dbname))
|
78 |
os.mkdir(os.path.join(dirname, dbname))
|
78 |
fname = os.path.join(
|
79 |
fname = os.path.join(
|
79 |
dirname,
|
80 |
dirname,
|
80 |
dbname,
|
81 |
dbname,
|
81 |
'%s.bson' % (cls.__mongometa__.name))
|
82 |
'%s.bson' % (mgr.collection_name))
|
82 |
log.info('%s: dumping %s objects to %s',
|
83 |
log.info('%s: dumping %s objects to %s',
|
83 |
cname, num_objs, fname)
|
84 |
cname, num_objs, fname)
|
84 |
with open(os.path.join(dirname, fname), 'w') as fp:
|
85 |
with open(os.path.join(dirname, fname), 'w') as fp:
|
85 |
for obj in cls.query.find(oq, validate=False).ming_cursor: _write_bson(fp, obj)
|
86 |
for obj in cls.query.find(oq, validate=False).ming_cursor: _write_bson(fp, obj)
|
86 |
|
87 |
|