Browse Source

fix model

dev
poturaevpetr 2 weeks ago
parent
commit
c2289bfc45
  1. 4
      apiApp/database/AiConclusion.py
  2. 3
      apiApp/database/ConclusionVersion.py
  3. 4
      apiApp/database/Operator.py
  4. 3
      apiApp/database/__init__.py
  5. 21
      autoLoader/database/__init__.py

4
apiApp/database/AiConclusion.py

@ -18,5 +18,5 @@ class AiConclusion(Base):
index_date = Column(DateTime, default=datetime.utcnow)
end_date = Column(DateTime)
audio_id = Column(UUID(as_uuid=True), ForeignKey("audio.id"))
version = relationship("ConclusionVersion", back_populates="ai_conclusion")
audio = relationship("Audio", back_populates="ai_conclusion")
versions = relationship("ConclusionVersion", back_populates="ai_conclusion")

3
apiApp/database/ConclusionVersion.py

@ -1,4 +1,5 @@
from sqlalchemy import Column, UUID, ForeignKey, Integer, Text
from sqlalchemy.orm import relationship
from apiApp.database import Base
import uuid
@ -10,3 +11,5 @@ class ConclusionVersion(Base):
conclusion_id = Column(UUID(as_uuid=True), ForeignKey("ai_conclusion.id"))
version = Column(Integer)
content = Column(Text)
ai_conclusion = relationship("AiConclusion", back_populates="versions")

4
apiApp/database/Operator.py

@ -11,6 +11,6 @@ class Operator(Base):
fio = Column(String(100))
num = Column(Integer)
calls = relationship("Call", back_populates="operator")
# TODO: Добавить relationship когда будет создана модель Call
# calls = relationship("Call", back_populates="operator")

3
apiApp/database/__init__.py

@ -29,3 +29,6 @@ from apiApp.database.Operator import Operator
from apiApp.database.Audio import Audio
from apiApp.database.AiConclusion import AiConclusion
from apiApp.database.ConclusionVersion import ConclusionVersion
# Все модели должны быть импортированы здесь для правильной работы SQLAlchemy metadata
# Это гарантирует, что все relationship будут работать корректно

21
autoLoader/database/__init__.py

@ -1,21 +1,14 @@
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 {}
)
# Создаём engine, но используем Base из apiApp.database
from apiApp.database import Base, engine
# SessionLocal
# SessionLocal (используем тот же engine)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Base (используем тот же Base, что и в apiApp.database)
from apiApp.database import Base
# Зависимость для получения сессии БД (для FastAPI)
def get_db():
@ -41,7 +34,7 @@ def get_db_session():
db.close()
# Импортируем модели из apiApp.database
from apiApp.database.Audio import Audio
from apiApp.database.AiConclusion import AiConclusion
from apiApp.database.ConclusionVersion import ConclusionVersion
# Импортируем ТОЛЬКО нужные модели из apiApp.database
# Operator не импортируем, чтобы избежать проблем с Call
from autoLoader.database.Audio import Audio

Loading…
Cancel
Save