From b5a7d733c685e4409d7f7e1af0a95b8d75d3a3a1 Mon Sep 17 00:00:00 2001 From: benya Date: Sun, 8 Mar 2026 00:31:09 +0300 Subject: [PATCH] fix(orm): disambiguate Chat<->Message relationships - set explicit foreign_keys for Chat.messages and Message.chat - resolve mapper initialization error after pinned_message_id fk --- app/chats/models.py | 6 +++++- app/messages/models.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/chats/models.py b/app/chats/models.py index 1ce60d6..964fbf9 100644 --- a/app/chats/models.py +++ b/app/chats/models.py @@ -34,7 +34,11 @@ class Chat(Base): created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now(), nullable=False) members: Mapped[list["ChatMember"]] = relationship(back_populates="chat", cascade="all, delete-orphan") - messages: Mapped[list["Message"]] = relationship(back_populates="chat", cascade="all, delete-orphan") + messages: Mapped[list["Message"]] = relationship( + back_populates="chat", + cascade="all, delete-orphan", + foreign_keys="Message.chat_id", + ) class ChatMember(Base): diff --git a/app/messages/models.py b/app/messages/models.py index 8ab55bb..62ab673 100644 --- a/app/messages/models.py +++ b/app/messages/models.py @@ -49,7 +49,7 @@ class Message(Base): nullable=False, ) - chat: Mapped["Chat"] = relationship(back_populates="messages") + chat: Mapped["Chat"] = relationship(back_populates="messages", foreign_keys=[chat_id]) sender: Mapped["User"] = relationship(back_populates="sent_messages") attachments: Mapped[list["Attachment"]] = relationship(back_populates="message", cascade="all, delete-orphan")