Thank you sir, that resolved it, and in record time!


On 2014.3.28, at 16:51, Michael Bayer <[email protected]> wrote:

> 
> On Mar 28, 2014, at 1:15 AM, Adrian Robert <[email protected]> wrote:
> 
>> I have been using the automap extension with postgres, with an inheritance 
>> structure using the joined inheritance pattern. I could not figure out a way 
>> to have this reflected from the DB so I define the classes for this part of 
>> my schema explicitly, and when automap initializes, these classes get used 
>> (and modified) for those tables and the rest get autogenerated.
>> 
>> It works fine until I try to delete an instance of an inheriting class: then 
>> I get a circular dependency error which seems to relate to relationships and 
>> backreferences created for the foreign key relationship underlying the 
>> joined inheritance.
>> 
>> The attached code demonstrates the issue.  The first run generates the DB 
>> schema from the classes, and works, any number of times.  On the second run, 
>> switch the two comments for Base (in two places) to use automap.  The output 
>> of the first:
>> 
>> % ./test.py
>> RELATIONSHIPS: []
>> Run completed successfully.
>> 
>> % ./test.py
>> RELATIONSHIPS: [('employee', <RelationshipProperty at 0x10263d310; 
>> employee>), ('engineer_collection', <RelationshipProperty at 0x102663210; 
>> engineer_collection>)]
>> Circular dependency detected. Cycles: {DeleteState(<Engineer at 
>> 0x1026a9d10>)} all edges: {(DeleteState(<Engineer at 0x1026a9d10>), 
>> DeleteState(<Engineer at 0x1026a9d10>)), 
>> (ProcessState(OneToManyDP(Employee.engineer_collection), <Engineer at 
>> 0x1026a9d10>, delete=True), DeleteState(<Engineer at 0x1026a9d10>))}
>> 
>> Notice that the mapper in the first case shows no relationships, despite the 
>> foreign key created for the inheritance. On the other hand when the same 
>> structure is read from the DB by automap, we see forward and back 
>> relationships, which I guess is somehow causing the circular dependency.
>> 
>> Am I doing something wrong in my attempt to use joined inheritance in 
>> conjunction with automap, or is this a bug or something unsupported?
> 
> automap is creating an inappropriate relationship.  I added a rule to skip 
> relationship for issubclass(local_cls, target_cls)  in 4d93a52e77895f87570, 
> issue #3004.
> 
> -- 
> You received this message because you are subscribed to a topic in the Google 
> Groups "sqlalchemy" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/sqlalchemy/XG2-j_UjfnA/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to 
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to