From b3246f05db11e75478b407df54b9b196a125e5b6 Mon Sep 17 00:00:00 2001 From: j Date: Sat, 23 Feb 2019 12:50:35 +0530 Subject: [PATCH] fix broken logs --- oml/settings.py | 2 +- oml/update.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/oml/settings.py b/oml/settings.py index 39df3a2..86888ee 100644 --- a/oml/settings.py +++ b/oml/settings.py @@ -95,4 +95,4 @@ FULLTEXT_SUPPORT = fulltext.platform_supported() if not FULLTEXT_SUPPORT: config['itemKeys'] = [k for k in config['itemKeys'] if k['id'] != 'fulltext'] -DB_VERSION = 18 +DB_VERSION = 19 diff --git a/oml/update.py b/oml/update.py index 3ae467a..861a819 100644 --- a/oml/update.py +++ b/oml/update.py @@ -379,6 +379,8 @@ class Update(Thread): db_version = migrate_17() if db_version < 18: db_version = migrate_18() + if db_version < 19: + db_version = migrate_19() settings.server['db_version'] = db_version def run(self): @@ -698,3 +700,15 @@ def migrate_18(): 'CREATE INDEX ix_annotation_findnotes ON annotation (findnotes)' ]) return 18 + +def migrate_19(): + from user.models import User + with db.session(): + peers = [u for u in User.query.filter_by(peered=True)] + peers.sort(key=lambda u: utils.user_sort_key(u.json())) + for u in peers: + peer = utils.get_peer(u.id) + if not peer.info.get('revision') and os.path.exists(peer._logpath) and os.path.getsize(peer._logpath): + logger.debug('try to apply pending logs for %s', u.id) + peer.apply_log() + return 19