Switch to unified view

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