On 07/04/2012 17:29, Julien Cigar wrote:
On 07/04/2012 16:38, Michael Bayer wrote:
On Jul 4, 2012, at 9:16 AM, Julien Cigar wrote:

Hello,

I have a rather strange CircularDependencyError with the following use-case:

- I have a "content" table and a "data" table.
- "content" is mapped with Content and "data" is mapped with File.
- File is a Content (joined table inheritance), so File has a foreign key to Content (through the content_id column)
- Content has foreign key too File through the icon_content_id column.

I'm doing the following:
foo = Content.query.get(429)
Session.delete(foo)
Session.commit()

... but it fails with a "CircularDependencyError: Circular dependency detected. Cycles: (..)" error

(object with id 429 if a File in this case)

I posted my mappers here http://pastie.org/4198679 (problematic relation is at line 136-143) and my table definition here http://pastie.org/4198678
The exception message technically shows the cycles though it can be hard to read. You could have a cycle between Content.children, or perhaps interleaving File.icon/Content.icon. There's a lot of possibilities here since everything is self referential. The post_update on File.icon suggests Content.children might be involved. If there's a UOW bug you'd need to give me a minimal test case (test case here would not have most of these ancillary classes - just Content, File, a few data records, error message. Remove one thing at a time from a test case and keep running it until you isolate the minimal conditions).


I think there is an UOW bug as I removed almost everything from my mappers and I still get an error. I'll make a test case as soon as I have a little time !



Hello,

I've added a ticket with a test case (using PostgreSQL and psycopg2): http://www.sqlalchemy.org/trac/ticket/2527 I tried to remove one relationship() at a time, but I'm still getting a CircularDependencyError ...

Julien

--
No trees were killed in the creation of this message.
However, many electrons were terribly inconvenienced.

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

<<attachment: jcigar.vcf>>

Reply via email to