i've modified all relations to be all,delete-orphan and now it does 
add them all - as your scoped session does - and then complains:

Deleting owner
BEGIN
DELETE FROM friendship WHERE friendship.id = %(id)s
 [{'id': 1L}, {'id': 2L}]
DELETE FROM owner WHERE owner.id = %(id)s
 {'id': 1L}
DELETE FROM dog WHERE dog.id = %(id)s
 [{'id': 1}, {'id': 2}]
ROLLBACK
Traceback (most recent call last):
  File "f.py", line 138, in <module>
    session.flush()
...
    raise exc.DBAPIError.instance(statement, parameters, e, 
connection_invalidated=is_disconnect)
sqlalchemy.exc.IntegrityError: (IntegrityError) update or delete on 
table "dog" violates foreign key constraint "friendship_dog_id_fkey" 
on table "friendship"
DETAIL:  Key (id)=(1) is still referenced from table "friendship".
 'DELETE FROM dog WHERE dog.id = %(id)s' [{'id': 1}, {'id': 2}]

well... u have other friendships referencing that same dog/s.

so i tried this and that and if the friendship.dog has no cascades at 
all (i.e. just default), then all seems ok - owner and friendships 
deleted, dogs not.
i guess u want when 2nd owner gets deleted to delete the orphan dogs?
it's not in the src...

maybe a better testcase would be of help - asserting whats in db and 
what should not be, before and after.

back on the initial question, mapperExt come to play too late in 
session. u may try sessionExt hooks... or other/earlier mapperExt 
hook... eventualy.

svil

On Thursday 27 November 2008 10:30:04 David Harrison wrote:
> Postgres is the intended deployment platform so it really does need
> to work on Postgres, that said last time I dug into this I found
> that SQLite is less strict on enforcing key constraints where
> Postgres isn't, so technically Postgres is right to complain.
>
> 2008/11/27  <[EMAIL PROTECTED]>:
> > and what that shoud do? attached is a changed version... do see
> > if that's what u want (it's sqlite, with plain session).
> > the only real change is cascade=all,delete-orphan on
> > house.owners... but i just unintentionaly guessed it.
> >
> > On Thursday 27 November 2008 09:51:38 David Harrison wrote:
> >> So this is actually a follow on from a question I posed quite a
> >> while back now:
> >>
> >> http://groups.google.com/group/sqlalchemy/browse_thread/thread/4
> >>530
> >> dffffd3f5585/eb4638599b02577d?lnk=gst&q=Postgres+cascade+error#e
> >>b463 8599b02577d
> >>
> >> So my approach to solving this problem was to use a
> >> MapperExtension, but it's giving me the error that I originally
> >> posted in this thread.

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to