import os import transaction from maphub_web import models from maphub_web.models import DBSession from maphub_web.utils.utils import write_json, ensure_dir, read_json backup_dir = '../db/json_export' map_properties = ['name', 'description', 'featured', 'geojson'] def export_maps(): ensure_dir(backup_dir) for m in DBSession.query(models.Map).all(): data = dict() for prop in map_properties: data[prop] = getattr(m, prop) write_json(os.path.join(backup_dir, '{}.json'.format(m.id)), data) def import_maps(): DBSession.query(models.Map).delete() for json_file in os.listdir(backup_dir): data = read_json(os.path.join(backup_dir, json_file)) m = models.Map() for prop in map_properties: setattr(m, prop, data[prop]) DBSession.add(m) transaction.commit()