From 0f134a1a20c96125c214a5f7a11efc208eb259de Mon Sep 17 00:00:00 2001 From: Ethanfel Date: Wed, 18 Mar 2026 23:58:56 +0100 Subject: [PATCH] Add one-time bulk migration to merge lora keys in all stored sequences Runs at DB startup, only updates rows that have stale separate strength keys. No-op once all data is migrated. Co-Authored-By: Claude Opus 4.6 --- db.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/db.py b/db.py index 3adc115..3251cb8 100644 --- a/db.py +++ b/db.py @@ -68,6 +68,26 @@ class ProjectDB: self.conn.execute("PRAGMA journal_mode=WAL") self.conn.execute("PRAGMA foreign_keys=ON") self.conn.executescript(SCHEMA_SQL) + self._migrate_all_lora_data() + + def _migrate_all_lora_data(self) -> None: + """One-time bulk migration: merge separate lora strength keys in all stored sequences.""" + rows = self.conn.execute("SELECT id, data FROM sequences").fetchall() + updated = 0 + for row in rows: + data = json.loads(row["data"]) + original = row["data"] + migrated = self._migrate_lora_keys(data) + new_json = json.dumps(migrated) + if new_json != original: + self.conn.execute( + "UPDATE sequences SET data = ? WHERE id = ?", + (new_json, row["id"]), + ) + updated += 1 + if updated: + self.conn.execute("COMMIT") + logger.info("Migrated lora keys in %d/%d sequences", updated, len(rows)) def close(self): self.conn.close()