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, yoch.me...@gmail.com 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 sqlalchemy+unsubscr...@googlegroups.com
> <mailto:sqlalchemy+unsubscr...@googlegroups.com>.
> To post to this group, send email to sqlalchemy@googlegroups.com
> <mailto:sqlalchemy@googlegroups.com>.
> 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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to