"""Настройка SQLAlchemy для SQLite.""" from pathlib import Path from sqlalchemy import create_engine from sqlalchemy.orm import declarative_base, sessionmaker ROOT = Path(__file__).resolve().parent.parent.parent DB_PATH = ROOT / "plates.db" DATABASE_URL = f"sqlite:///{DB_PATH}" # check_same_thread=False нужен потому что FastAPI обрабатывает запросы в разных потоках engine = create_engine( DATABASE_URL, connect_args={"check_same_thread": False}, echo=False, # поставь True если хочешь видеть SQL в консоли ) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() def init_db(): """Создаёт все таблицы. Вызывается при старте приложения.""" # Импортируем модели чтобы они зарегистрировались в Base.metadata from app.db import models # noqa: F401 Base.metadata.create_all(bind=engine) def get_session(): """Dependency для FastAPI: открывает сессию на запрос.""" db = SessionLocal() try: yield db finally: db.close()