import os import sqlite3 from typing import Tuple, Optional def resolve_db_path() -> Tuple[str, bool]: if os.path.isdir("/data"): return "/data/venus_hotel.db", True os.makedirs("./data", exist_ok=True) return "./data/venus_hotel.db", False def get_conn(db_path: Optional[str] = None) -> sqlite3.Connection: if db_path is None: db_path, _ = resolve_db_path() conn = sqlite3.connect(db_path, check_same_thread=False, isolation_level=None) conn.row_factory = sqlite3.Row conn.execute("PRAGMA foreign_keys = ON;") conn.execute("PRAGMA journal_mode = WAL;") conn.execute("PRAGMA synchronous = NORMAL;") conn.execute("PRAGMA busy_timeout = 5000;") return conn