Spaces:
Paused
Paused
File size: 1,386 Bytes
ec17af3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | from sqlalchemy import inspect
from app.db import engine
SESSION_COLUMN_DDL: dict[str, str] = {
"document_path": "ALTER TABLE sessions ADD COLUMN document_path VARCHAR(1024)",
"document_name": "ALTER TABLE sessions ADD COLUMN document_name VARCHAR(255)",
"document_mime_type": "ALTER TABLE sessions ADD COLUMN document_mime_type VARCHAR(255)",
"document_blocks_json": "ALTER TABLE sessions ADD COLUMN document_blocks_json TEXT",
"curriculum_day": "ALTER TABLE sessions ADD COLUMN curriculum_day INTEGER",
"exercise_id": "ALTER TABLE sessions ADD COLUMN exercise_id VARCHAR(100)",
"story_framework": "ALTER TABLE sessions ADD COLUMN story_framework VARCHAR(80)",
"target_keywords_json": "ALTER TABLE sessions ADD COLUMN target_keywords_json TEXT",
"teleprompter_script": "ALTER TABLE sessions ADD COLUMN teleprompter_script TEXT",
}
def apply_startup_schema_upgrades() -> None:
inspector = inspect(engine)
if "sessions" not in inspector.get_table_names():
return
existing_columns = {column["name"] for column in inspector.get_columns("sessions")}
statements = [ddl for column_name, ddl in SESSION_COLUMN_DDL.items() if column_name not in existing_columns]
if not statements:
return
with engine.begin() as connection:
for statement in statements:
connection.exec_driver_sql(statement)
|