Files
FileAudioAPI/autoLoader/database/__init__.py
T
2025-12-25 22:38:09 +05:00

42 lines
1.3 KiB
Python

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