diff --git a/backend/database.py b/backend/database.py index a2de257..b3c2725 100644 --- a/backend/database.py +++ b/backend/database.py @@ -70,13 +70,22 @@ END; """ +def _add_column_if_missing(raw_conn, table: str, column: str, definition: str): + existing = {row[1] for row in raw_conn.execute(f"PRAGMA table_info({table})")} + if column not in existing: + raw_conn.execute(f"ALTER TABLE {table} ADD COLUMN {column} {definition}") + + def init_db(): from . import models # noqa: F401 Base.metadata.create_all(bind=engine) - # executescript handles multi-statement SQL including trigger BEGIN...END blocks raw_conn = engine.raw_connection() try: + # Column migrations — safe to run on every startup + _add_column_if_missing(raw_conn, "videos", "view_count", "INTEGER") + raw_conn.commit() + # executescript handles multi-statement SQL including trigger BEGIN...END blocks raw_conn.executescript(FTS_SETUP_SQL) finally: raw_conn.close()