STT / app /db /database.py
github-actions[bot]
Auto-deploy from GitHub: 1ff9b762b3692b3fb6428694bf175fc54879d453
bacf22b
Raw
History Blame Contribute Delete
1.54 kB
import aiosqlite
from app.core.config import settings
from custom_logger import logger_config as logger
async def init_db():
logger.info(f"Initializing database at {settings.DATABASE_FILE}")
async with aiosqlite.connect(settings.DATABASE_FILE) as db:
await db.execute('''CREATE TABLE IF NOT EXISTS tasks
(id TEXT PRIMARY KEY,
filename TEXT NOT NULL,
filepath TEXT NOT NULL,
status TEXT NOT NULL,
result TEXT,
created_at TEXT NOT NULL,
processed_at TEXT,
progress INTEGER DEFAULT 0,
progress_text TEXT,
hide_from_ui INTEGER DEFAULT 0,
language TEXT,
task TEXT DEFAULT 'transcribe',
engine TEXT)'''
)
# Migrate databases created before language/task existed.
async with db.execute("PRAGMA table_info(tasks)") as cursor:
existing = {row[1] for row in await cursor.fetchall()}
if 'language' not in existing:
await db.execute("ALTER TABLE tasks ADD COLUMN language TEXT")
if 'task' not in existing:
await db.execute("ALTER TABLE tasks ADD COLUMN task TEXT DEFAULT 'transcribe'")
if 'engine' not in existing:
await db.execute("ALTER TABLE tasks ADD COLUMN engine TEXT")
await db.commit()
logger.info("Database initialized successfully.")