From f4f33b0e015e80093051c5c35b90673211b89611 Mon Sep 17 00:00:00 2001 From: Jann Stute Date: Mon, 6 Jul 2026 15:35:34 +0200 Subject: [PATCH] refactor: add assurance 3 to DB 200 migration --- src/tagstudio/core/library/alchemy/library.py | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/tagstudio/core/library/alchemy/library.py b/src/tagstudio/core/library/alchemy/library.py index 1be7411c..7620a14b 100644 --- a/src/tagstudio/core/library/alchemy/library.py +++ b/src/tagstudio/core/library/alchemy/library.py @@ -605,27 +605,6 @@ class Library: # changes: tag_parents self.__apply_db202_migration(session) - # TODO ASSURANCE 3: reordering - if loaded_db_version < 200: - session.execute( - text( - "CREATE INDEX IF NOT EXISTS idx_tags_name_shorthand " - "ON tags (name, shorthand)" - ) - ) - session.execute( - text( - "CREATE INDEX IF NOT EXISTS idx_tag_parents_child_id " - "ON tag_parents (child_id)" - ) - ) - session.execute( - text( - "CREATE INDEX IF NOT EXISTS idx_tag_entries_entry_id " - "ON tag_entries (entry_id)" - ) - ) - # TODO: instead update DB version after every migration and abort on first fail # Update DB_VERSION if loaded_db_version < DB_VERSION: @@ -912,6 +891,21 @@ class Library: session.commit() + # DB indices for improved performance + session.execute( + text("CREATE INDEX IF NOT EXISTS idx_tags_name_shorthand ON tags (name, shorthand)") + ) + session.execute( + text( + "CREATE INDEX IF NOT EXISTS idx_tag_parents_child_id ON tag_parents (child_id)" + ) + ) + session.execute( + text( + "CREATE INDEX IF NOT EXISTS idx_tag_entries_entry_id ON tag_entries (entry_id)" + ) + ) + def __apply_db201_migration(self, session: Session): """Migrate DB to DB_VERSION 201.""" with session: