19 lines
511 B
Python
19 lines
511 B
Python
from __future__ import annotations
|
|
|
|
import os
|
|
import sqlite3
|
|
|
|
from app.storage.schema import init_schema
|
|
|
|
|
|
def connect(db_path: str) -> sqlite3.Connection:
|
|
parent = os.path.dirname(os.path.abspath(db_path))
|
|
if parent and not os.path.exists(parent):
|
|
os.makedirs(parent, exist_ok=True)
|
|
conn = sqlite3.connect(db_path, timeout=30)
|
|
conn.row_factory = sqlite3.Row
|
|
conn.execute("PRAGMA journal_mode=WAL")
|
|
conn.execute("PRAGMA busy_timeout=30000")
|
|
init_schema(conn)
|
|
return conn
|