尝试使用sqlalchemy定义自引用关系时出错

2024-06-26 18:16:26 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试使用sqlalchemy添加自引用列时,迁移脚本失败

我试图在我的一个表中创建一个自引用关系,在我的例子中,我希望能够在我的平台上显示类似的游戏

我曾尝试使用辅助表创建关系,但似乎无法使其正常工作

以下是我的游戏类中的关系代码:

similiar_games = relationship("Game", 
                                  secondary=SimiliarGames.__tablename__, 
                                  primaryjoin=id==SimiliarGames.source_game_id, 
                                  secondaryjoin=id == SimiliarGames.similiar_game_id                                
                                  )         

这是我的类似游戏课:

class SimiliarGames(BaseModel):
    __tablename__ = 'similiar_game'    

    source_game_id = Column(Integer, ForeignKey('game.id'), primary_key=True)
    similiar_game_id = Column(Integer, ForeignKey('game.id'), primary_key=True)

以下是我收到的错误消息:

Could not locate any simple equality expressions involving locally mapped 
foreign key columns for primary join condition 
'similiar_game.source_game_id = :source_game_id_1' on relationship 
Game.similiar_games.  Ensure that referencing columns are associated with 
a ForeignKey or ForeignKeyConstraint, or are annotated in the join 
condition with the foreign() annotation. To allow comparison operators 
other than '==', the relationship can be marked as viewonly=True.

任何帮助都将不胜感激,谢谢


Tags: thekeyidgametrue游戏source关系