0
他のメッセージへの返信メッセージを含むモデルがあります。同じmessage_idを複数のアカウントに含めることができます。私はaccountとmessage_idを複合キーにして関連させる方法を見つけることができません。sqlalchemyを使用した複合キーの自己参照関係
私はこれまでのところ得ている:
class Message(Base):
__tablename__ = 'messages'
id = Column(String(20), primary_key=True)
account = Column(String(20))
message_id = Column(String(20))
in_reply_to_message_id = Column(String(20))
__table_args__ = (ForeignKeyConstraint([account, in_reply_to_message_id],
['messages.account', 'messages.message_id']),
{})
parent_message = db.relationship('Message', remote_side=[message_id],
primaryjoin=('Message.account==Message.account and Message.in_reply_to_message_id==Message.message_id'),
backref=backref('child_messages'), uselist=False)
私はmessage.parent_message
をしようと、生成されたクエリは、WHERE句で不足しているアカウントの比較である -
WHERE %(param_1)s = messages.message_id
はまた、私は警告を取得するには:
SAWarning: Multiple rows returned with uselist=False for lazily-loaded attribute 'Tweet.parent_tweet'
% self.parent_property)
アカウントを正しく管理するための関係を設定するにはどうすればよいですかこの場合はコンポジットキーの一部です。