I'm new to SQLAlchemy (but not python ORMs *cough*SQLObject*cough*) and I really like the idea of Joined Table Inheritance, and the example in the Documentation makes it look really elegant http://www.sqlalchemy.org/docs/04/mappers.html#advdatamapping_mapper_inheritance_joined
My question is what if you wanted to add a 'hired' field to say the employees table & object (from the example in that link) that references a manager object. In this way I imagine that we are making another reference to an employee object and might be an issue when trying to figure out the join. So I'd imagine that the tables look like: employees = Table('employees', metadata, Column('employee_id', Integer, primary_key=True), Column('name', String(50)), Column('type', String(30), nullable=False) ) engineers = Table('engineers', metadata, Column('employee_id', Integer, ForeignKey('employees.employee_id'), primary_key=True), Column('hired_by_id',Integer,ForeignKey('managers.employee_id')), #######INTERESTING PART Column('engineer_info', String(50)), ) managers = Table('managers', metadata, Column('employee_id', Integer, ForeignKey('employees.employee_id'), primary_key=True), Column('manager_data', String(50)), ) and the mappers look like: mapper(Employee, employees, polymorphic_on=employees.c.type, polymorphic_identity='employee') mapper(Engineer, engineers, inherits=Employee, polymorphic_identity='engineer', properties={ 'hirer':relation(Manager,uselist=False,backref='hired') }) mapper(Manager, managers, inherits=Employee, polymorphic_identity='manager') But the error message you'd get if you do this is: sqlalchemy.exceptions.ArgumentError: Error determining primary and/or secondary join for relationship 'Engineer.hirer (Manager)'. If the underlying error cannot be corrected, you should specify the 'primaryjoin' (and 'secondaryjoin', if there is an association table present) keyword arguments to the relation() function (or for backrefs, by specifying the backref using the backref() function with keyword arguments) to explicitly specify the join conditions. Nested error is "Can't determine join between 'Join object on employees(14680464) and engineers(14680880)' and '_FromGrouping object'; tables have more than one foreign key constraint relationship between them. Please specify the 'onclause' of this join explicitly." Might I add that this is an extremely informative error message! Basically, my question is how do I satisfy this requirement as described by the error message? I have to make my join more specific? How would I do that? And another question, is Joined Table Inheritance a common thing to do in SQLAlchemy? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---