Hi
I've recently used sqlacodegen
When I try and run against the generated code it get this message that
I've been unable to fix:
Could not determine join condition between parent/child tables on
relationship Workgrp.usrmst - there are multiple foreign key paths linking
the tables. Specify the 'foreign_keys' argument, providing a list of those
columns which should be counted as containing a foreign key reference to
the parent table.
I'm wondering if someone can shed some light:
Here is the generated code for the relevant tables causing the issue:
class Workgrp(Owner):
__tablename__ = 'workgrp'
workgrp_id = Column(ForeignKey('owner.owner_id'), primary_key=True)
workgrp_prntid = Column(Numeric(scale=0, asdecimal=False))
workgrp_name = Column(String(256))
workgrp_desc = Column(String(4000))
workgrp_owner = Column(ForeignKey('usrmst.usrmst_id'))
workgrp_lstchgtm = Column(DateTime, index=True)
workgrp_externid = Column(String(20))
workgrp_profile = Column(Text)
workgrp_usrmodtm = Column(DateTime)
usrmst = relationship('Usrmst')
class Usrmst(Owner):
__tablename__ = 'usrmst'
__table_args__ = (
Index('usrmst_ak1', 'usrmst_domain', 'usrmst_name'),
)
usrmst_id = Column(ForeignKey('owner.owner_id'), primary_key=True)
usrmst_domain = Column(String(256))
usrmst_name = Column(String(256), nullable=False)
usrmst_fullname = Column(String(1024))
usrmst_desc = Column(String(4000))
usrmst_phoneno = Column(String(40))
usrmst_pagerno = Column(String(40))
usrmst_email = Column(String(1024))
usrmst_emailtype = Column(Numeric(scale=0, asdecimal=False))
secmst_id = Column(ForeignKey('secmst.secmst_id'))
lngmst_id = Column(ForeignKey('lngmst.lngmst_id'))
usrmst_password = Column(String(1024))
usrmst_externid = Column(String(20))
usrmst_suser = Column(String(1))
usrmst_lstchgtm = Column(DateTime, index=True)
usrmst_orapassword = Column(String(144))
usrmst_wingroup = Column(String(1))
usrmst_tmpacct = Column(String(1))
usrmst_profile = Column(Text)
usrmst_usrmodtm = Column(DateTime)
usrmst_principal = Column(String(256))
usrmst_keytab = Column(String(4000))
lngmst = relationship('Lngmst')
secmst = relationship('Secmst')
I've looked at the SQLAlchemy docs, and tried things with foreign_keys,
primaryjoin,
http://docs.sqlalchemy.org/en/latest/orm/relationship_api.html#sqlalchemy.orm.relationship.params.foreign_keys
http://docs.sqlalchemy.org/en/latest/orm/join_conditions.html#relationship-custom-foreign
But ended up with messages like '
Table' object has no attribute 'usrmst_id'
AttributeError: 'Table' object has no attribute 'workgrp_owner'
Also for Mike Bayer: Why is there no consistency in naming within
SQLAlchemy?:
foreign_keys uses underscore
primaryjoin doesn't
--
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 [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.