from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker, Session from autoLoader.config import DATABASE_URL from contextlib import contextmanager # Создание engine engine = create_engine( DATABASE_URL, connect_args={"check_same_thread": False} if "sqlite" in DATABASE_URL else {} ) # SessionLocal SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) # Base (используем тот же Base, что и в apiApp.database) from apiApp.database import Base # Зависимость для получения сессии БД (для FastAPI) def get_db(): db = SessionLocal() try: yield db finally: db.close() # Контекстный менеджер для использования в loader @contextmanager def get_db_session(): """Контекстный менеджер для работы с БД в loader""" db = SessionLocal() try: yield db db.commit() except Exception as e: db.rollback() raise e finally: db.close() # Импортируем модели из apiApp.database from apiApp.database.Audio import Audio from apiApp.database.AiConclusion import AiConclusion from apiApp.database.ConclusionVersion import ConclusionVersion