From b510e521882d6c32ad839f4fbfa143eb670a26a8 Mon Sep 17 00:00:00 2001 From: krateng Date: Sun, 3 Apr 2022 17:51:27 +0200 Subject: [PATCH] Implemented additional database maintenance --- maloja/database/sqldb.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/maloja/database/sqldb.py b/maloja/database/sqldb.py index 8400292..4313d44 100644 --- a/maloja/database/sqldb.py +++ b/maloja/database/sqldb.py @@ -9,7 +9,7 @@ from ..globalconf import data_dir from .dbcache import cached_wrapper, cached_wrapper_individual, invalidate_entity_cache from doreah.logging import log -from doreah.regular import runhourly +from doreah.regular import runhourly, runmonthly @@ -655,9 +655,21 @@ def clean_db(): +@runmonthly +def renormalize_names(): + with engine.begin() as conn: + rows = conn.execute(DB['artists'].select()).all() + for row in rows: + id = row.id + name = row.name + norm_actual = row.name_normalized + norm_target = normalize_name(name) + if norm_actual != norm_target: + log(f"{name} should be normalized to {norm_target}, but is instead {norm_actual}, fixing...") - + with engine.begin() as conn: + rows = conn.execute(DB['artists'].update().where(DB['artists'].c.id == id).values(name_normalized=norm_target))