from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, Session from autoLoader.config import DATABASE_URL from contextlib import contextmanager # Создаём engine, но используем Base из apiApp.database from apiApp.database import Base, engine # SessionLocal (используем тот же engine) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) # Зависимость для получения сессии БД (для 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 # НЕ импортируем из autoLoader.database, чтобы избежать дублирования таблиц from apiApp.database.Audio import Audio from apiApp.database.AiConclusion import AiConclusion