Browse Source

fix model

dev
poturaevpetr 2 weeks ago
parent
commit
c2289bfc45
  1. 4
      apiApp/database/AiConclusion.py
  2. 5
      apiApp/database/ConclusionVersion.py
  3. 4
      apiApp/database/Operator.py
  4. 5
      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) index_date = Column(DateTime, default=datetime.utcnow)
end_date = Column(DateTime) end_date = Column(DateTime)
audio_id = Column(UUID(as_uuid=True), ForeignKey("audio.id")) audio = relationship("Audio", back_populates="ai_conclusion")
version = relationship("ConclusionVersion", back_populates="ai_conclusion") versions = relationship("ConclusionVersion", back_populates="ai_conclusion")

5
apiApp/database/ConclusionVersion.py

@ -1,4 +1,5 @@
from sqlalchemy import Column, UUID, ForeignKey, Integer, Text from sqlalchemy import Column, UUID, ForeignKey, Integer, Text
from sqlalchemy.orm import relationship
from apiApp.database import Base from apiApp.database import Base
import uuid import uuid
@ -9,4 +10,6 @@ class ConclusionVersion(Base):
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
conclusion_id = Column(UUID(as_uuid=True), ForeignKey("ai_conclusion.id")) conclusion_id = Column(UUID(as_uuid=True), ForeignKey("ai_conclusion.id"))
version = Column(Integer) version = Column(Integer)
content = Column(Text) 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)) fio = Column(String(100))
num = Column(Integer) num = Column(Integer)
calls = relationship("Call", back_populates="operator") # TODO: Добавить relationship когда будет создана модель Call
# calls = relationship("Call", back_populates="operator")

5
apiApp/database/__init__.py

@ -28,4 +28,7 @@ def get_db():
from apiApp.database.Operator import Operator from apiApp.database.Operator import Operator
from apiApp.database.Audio import Audio from apiApp.database.Audio import Audio
from apiApp.database.AiConclusion import AiConclusion from apiApp.database.AiConclusion import AiConclusion
from apiApp.database.ConclusionVersion import ConclusionVersion 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 import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, Session from sqlalchemy.orm import sessionmaker, Session
from autoLoader.config import DATABASE_URL from autoLoader.config import DATABASE_URL
from contextlib import contextmanager from contextlib import contextmanager
# Создание engine # Создаём engine, но используем Base из apiApp.database
engine = create_engine( from apiApp.database import Base, engine
DATABASE_URL,
connect_args={"check_same_thread": False} if "sqlite" in DATABASE_URL else {}
)
# SessionLocal # SessionLocal (используем тот же engine)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Base (используем тот же Base, что и в apiApp.database)
from apiApp.database import Base
# Зависимость для получения сессии БД (для FastAPI) # Зависимость для получения сессии БД (для FastAPI)
def get_db(): def get_db():
@ -41,7 +34,7 @@ def get_db_session():
db.close() db.close()
# Импортируем модели из apiApp.database # Импортируем ТОЛЬКО нужные модели из apiApp.database
from apiApp.database.Audio import Audio # Operator не импортируем, чтобы избежать проблем с Call
from apiApp.database.AiConclusion import AiConclusion from autoLoader.database.Audio import Audio
from apiApp.database.ConclusionVersion import ConclusionVersion

Loading…
Cancel
Save