you need to use the name generation functions name_for_scalar_relationship() and/or name_for_collection_relationship() to produce different names in each case. The "constraint" parameter passed as we see in http://docs.sqlalchemy.org/en/rel_1_0/orm/extensions/automap.html#handling-simple-naming-conflicts is a ForeignKeyConstraint object, you can look inside of constraint.column_keys to see if it is ['idbuiltin'] or ['idthermometer'] and use that to generate a name.
On 01/01/2016 04:16 AM, [email protected] wrote: > Hi all, > > I use automap with database reflection to import schema with sqlalchemy. > > In case I have two relationships on same foreign key in some table, only > one relationship is created by prepare(), the second one seems overwrited. > > My table looks like : > > | > Table('thermostat', > Base.metadata, > Column('id',INTEGER(),primary_key=True,nullable=False), > Column('idbuiltin',INTEGER(),ForeignKey('device.id')), > Column('idthermometer',INTEGER(),ForeignKey('device.id'))) > | > > How to control relationship creation to produce two distinct relationships ? > > Thank you and Happy New Year ! > > -- > 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 [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at https://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
