Thank you.

I hesitate between using this way, or explicitly specify the relationship
(is this a good idea? In my test I found 3 relations after prepare()) :

class Thermostat(Base):
    __tablename__ = 'thermostats'
    idbuiltin = Column(Integer, ForeignKey('device.id'))
    idthermometer = Column(Integer, ForeignKey('device.id'))
    thermometer = relationship(Dispositif, foreign_keys=idthermometer)
    builtin = relationship(Dispositif, foreign_keys=idbuiltin)


Another interesting point is how to detect this error to warn. I tried to 
use name_for_scalar_relationship() for that, but I don't kow how to get the 
relationships mapper.

Best regards

Le vendredi 1 janvier 2016 18:27:14 UTC+2, Michael Bayer a écrit :
>
> 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....@gmail.com <javascript:> 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+...@googlegroups.com <javascript:> 
> > <mailto:sqlalchemy+unsubscr...@googlegroups.com <javascript:>>. 
> > To post to this group, send email to sqlal...@googlegroups.com 
> <javascript:> 
> > <mailto:sqlal...@googlegroups.com <javascript:>>. 
> > 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