Cleanup: training_exercises.js_exercise_id — ID-Mismatch bereinigt, JOIN mit exercise_progress, Fuß-Umbenennung — SW by-v508, APP_VER 485

This commit is contained in:
rene 2026-04-29 19:00:53 +02:00
parent 9e9b87af35
commit ad3b73d687
5 changed files with 75 additions and 31 deletions

View file

@ -1482,3 +1482,24 @@ def _migrate(conn_factory):
);
CREATE INDEX IF NOT EXISTS idx_bj_user ON breeder_jahresberichte(user_id, jahr DESC);
""")
# js_exercise_id zu training_exercises — verbindet training_exercises mit exercise_progress
existing_te = [row[1] for row in conn.execute("PRAGMA table_info(training_exercises)").fetchall()]
if 'js_exercise_id' not in existing_te:
import re as _re
_CAT_TO_TAB = {
'Grundkommando': 'grundkommandos', 'Trick': 'tricks',
'Problemverhalten': 'problemverhalten', 'Mentale Auslastung': 'mentale-auslastung',
'Hundesport': 'hundesport', 'Körperpflege': 'koerperpflege',
'Welpe Basics': 'welpe-basics', 'Grundlagen': 'grundlagen',
}
conn.execute("ALTER TABLE training_exercises ADD COLUMN js_exercise_id TEXT")
# "Fuß (Leinenführigkeit)" → "Fuß" (damit es mit alten exercise_progress-Einträgen matcht)
conn.execute("UPDATE training_exercises SET name='Fuß' WHERE exercise_id='gk_fuss'")
rows = conn.execute("SELECT id, name, kategorie FROM training_exercises").fetchall()
for row in rows:
tab = _CAT_TO_TAB.get(row['kategorie'], row['kategorie'].lower().replace(' ', '-'))
js_id = tab + '_' + _re.sub(r'[\s/]+', '_', row['name'])
conn.execute("UPDATE training_exercises SET js_exercise_id=? WHERE id=?", (js_id, row['id']))
conn.execute("CREATE INDEX IF NOT EXISTS idx_te_js_id ON training_exercises(js_exercise_id)")
logger.info("Migration: training_exercises.js_exercise_id hinzugefügt, 'Fuß' bereinigt.")