Show error message when db failed to rebuild (#2043)
* Show error message when db failed to rebuild; fix #1908; * Forgot file
This commit is contained in:
parent
d38846f126
commit
9cda561091
4 changed files with 19 additions and 4 deletions
|
@ -786,6 +786,9 @@ class UiWebsocketPlugin(object):
|
||||||
if "ADMIN" not in permissions:
|
if "ADMIN" not in permissions:
|
||||||
return self.response(to, "You don't have permission to run this command")
|
return self.response(to, "You don't have permission to run this command")
|
||||||
|
|
||||||
self.site.storage.rebuildDb()
|
result = self.site.storage.rebuildDb()
|
||||||
|
|
||||||
|
if not result:
|
||||||
|
return self.response(to, {"error": "Failed to rebuild database"})
|
||||||
|
|
||||||
return self.response(to, "ok")
|
return self.response(to, "ok")
|
||||||
|
|
|
@ -814,8 +814,15 @@ window.initScrollable = function () {
|
||||||
this.tag.find("#button-dbrebuild").off("click touchend").on("click touchend", (function(_this) {
|
this.tag.find("#button-dbrebuild").off("click touchend").on("click touchend", (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
_this.wrapper.notifications.add("done-dbrebuild", "info", "Database rebuilding....");
|
_this.wrapper.notifications.add("done-dbrebuild", "info", "Database rebuilding....");
|
||||||
_this.wrapper.ws.cmd("dbRebuild", [], function() {
|
_this.wrapper.ws.cmd("dbRebuild", [], function(response) {
|
||||||
|
|
||||||
|
if (response !== "ok") {
|
||||||
|
_this.wrapper.notifications.add("done-dbrebuild", "error", response.error, 5000);
|
||||||
|
return _this.updateHtmlTag();
|
||||||
|
}
|
||||||
|
|
||||||
_this.wrapper.notifications.add("done-dbrebuild", "done", "Database rebuilt!", 5000);
|
_this.wrapper.notifications.add("done-dbrebuild", "done", "Database rebuilt!", 5000);
|
||||||
|
|
||||||
return _this.updateHtmlTag();
|
return _this.updateHtmlTag();
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
|
@ -1477,4 +1484,4 @@ function morphdom(fromNode, toNode, options) {
|
||||||
|
|
||||||
module.exports = morphdom;
|
module.exports = morphdom;
|
||||||
},{}]},{},[1])(1)
|
},{}]},{},[1])(1)
|
||||||
});
|
});
|
||||||
|
|
|
@ -264,6 +264,7 @@ class Db(object):
|
||||||
changed_tables.append(table_name)
|
changed_tables.append(table_name)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
self.log.error("Error creating table %s: %s" % (table_name, Debug.formatException(err)))
|
self.log.error("Error creating table %s: %s" % (table_name, Debug.formatException(err)))
|
||||||
|
return False
|
||||||
|
|
||||||
self.log.debug("Db check done in %.3fs, changed tables: %s" % (time.time() - s, changed_tables))
|
self.log.debug("Db check done in %.3fs, changed tables: %s" % (time.time() - s, changed_tables))
|
||||||
if changed_tables:
|
if changed_tables:
|
||||||
|
|
|
@ -138,7 +138,11 @@ class SiteStorage(object):
|
||||||
self.event_db_busy = gevent.event.AsyncResult()
|
self.event_db_busy = gevent.event.AsyncResult()
|
||||||
|
|
||||||
self.log.info("Creating tables...")
|
self.log.info("Creating tables...")
|
||||||
self.db.checkTables()
|
changed_tables = self.db.checkTables()
|
||||||
|
if not changed_tables:
|
||||||
|
# It failed
|
||||||
|
# "Error creating table..."
|
||||||
|
return False
|
||||||
cur = self.db.getCursor()
|
cur = self.db.getCursor()
|
||||||
cur.logging = False
|
cur.logging = False
|
||||||
s = time.time()
|
s = time.time()
|
||||||
|
|
Loading…
Reference in a new issue