Hello, I have a ManyToMany relationship between two tables, although I am not using "foreign keys" to establish it (this is a deliberate decision that I wouldn't like to explain more at this point). However, I am struggling to define this relationship using SQLAlchemy. At the very beginning, I found the *primaryjoin* that I tried using with partial success. I managed to get it working with *backref* (and with only one side being a list, which is not what I wanted), but to be honest it was rather by accident. I keep missing the information/examples of how exactly the *foreign_keys* and *remote_side* arguments are and how to use them effectively. I went through every single SO question on that topic and the documentation that mainly involves self joins (that is understandable as my use case is rather uncommon).
class Address(Base): __tablename__ = 'addresses' id = Column(UUID, primary_key=True) address_id = Column(String(8), nullable=False) is_deleted = Column(Boolean, server_default=expression.false(), nullable=False) companies = relationship("Company", primaryjoin="...", back_populates="addresses") class Company(Base): __tablename__ = 'companies' id = Column(UUID, primary_key=True) address_id = Column(String(8), nullable=False) addresses = relationship("Address", primaryjoin="...", back_populates="companies") I would like a *bidirectional relationship* with using *back_populates* (I don't like using *backref* as my models are often scattered across different modules and I prefer to be explicit). I am not using primary keys on purpose as I want to keep the historical addresses data just by marking address by deleted (and keeping companies and address linked via *address_id*). Referential integrity is enforced by the 3rd party provider where I import the data from, so this is not an issue in my case. Any help on how I should define the *relationship* on both models is appreciated. I really want to understand *foreign_keys* and *remote_side* because at the moment I cannot seem to be able to wrap my head around, even after reading https://docs.sqlalchemy.org/en/13/orm/join_conditions.html#creating-custom-foreign-conditions :( Thanks in advance -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/e0c7d5f6-58fe-410e-b0af-1d60973d3ba9%40googlegroups.com.