Fix missing view_count column migration on startup
create_all doesn't add columns to existing tables. Add _add_column_if_missing helper that checks PRAGMA table_info and runs ALTER TABLE if needed, called on every startup before FTS setup. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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():
|
def init_db():
|
||||||
from . import models # noqa: F401
|
from . import models # noqa: F401
|
||||||
|
|
||||||
Base.metadata.create_all(bind=engine)
|
Base.metadata.create_all(bind=engine)
|
||||||
# executescript handles multi-statement SQL including trigger BEGIN...END blocks
|
|
||||||
raw_conn = engine.raw_connection()
|
raw_conn = engine.raw_connection()
|
||||||
try:
|
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)
|
raw_conn.executescript(FTS_SETUP_SQL)
|
||||||
finally:
|
finally:
|
||||||
raw_conn.close()
|
raw_conn.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user