There's various error conditions we should have added in 0.5 but have
not. We should look into raising warnings in 0.5 and raising errors
in 0.6. The conditions are, using "delete-orphan" without "delete",
and using "delete-orphan" with "secondary". Neither is supported at
this time.
On Jan 15, 2009, at 11:30 AM, GustaV wrote:
>
> Hi all,
> I try to set up a many-to-many relation with an association object.
>
> But I want something not usual: I want the child object deleted when
> not owned by any parent anymore.
> This is for a messages/recipients relation: the message is useless
> when everybody removed it from its mailbox!
>
> I tried that, but it doesn't work:
>
> class Parent(meta.DeclarativeBase):
> id = Column(types.Integer, primary_key=True)
>
> class Child(meta.DeclarativeBase):
> id = Column(types.Integer, primary_key=True)
>
> class Assoc(meta.DeclarativeBase):
> p_id = Column(types.Integer,
> ForeignKey(Parent.id))
> c_id = Column(types.Integer,
> ForeignKey(Parent.id))
>
> parent = relation(Parent,
> backref=backref('children',
> cascade='all, delete-orphan'))
> child = relation(Child,
> backref='parents',
> cascade='delete-orphan')
>
> I expect "child = relation(Child, backref='parents', cascade='delete-
> orphan')" to forward deletes to child when it is an orphan. But it
> looks like it forward the delete even if it is not an orphan yet...
>
> It that configuration:
>
> p1 = Parent()
> p2 = Parent()
> c = Child()
> assoc1 = Assoc(parent=p1, child=c)
> assoc2 = Assoc(parent=p2, child=c)
>
> p1.children = [ ] will lead to:
> - delete assoc1 (ok)
> - delete c (not ok)
> - update assoc2.c_id = null (not ok)
>
> So why is it not really a delete-orphan? :)
>
> Thanks
>
> GustaV
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---