Add a button somewhere and call a controller like this.
@http.route('/backup/download', auth="user", type='http') def backup(self, **kw): ts = datetime.datetime.utcnow().strftime("%Y-%m-%d_%H-%M-%S") filename = "%s_%s.zip" % (request.env.cr.dbname, ts) headers = [ ('Content-Type', 'application/octet-stream; charset=binary'), ('Content-Disposition', content_disposition(filename)), ] dump_stream = db.dump_db(request.env.cr.dbname, None) response = werkzeug.wrappers.Response(dump_stream, headers=headers, direct_passthrough=True) return response
source share