I have posted a query on the sqlalchemy group.

http://groups.google.com/group/sqlalchemy/browse_thread/thread/9b7c835fbea0e4cc#



On Sep 7, 2:06 pm, Michael Pedersen <[email protected]> wrote:
> I can safely say that the default configuration does not do any sort of
> autocommit. I tried it out, and used exactly what you made in your sample
> code. Without any sort of manual commit from me, the data was not being
> saved to the database.
>
>
>
> On Tue, Sep 7, 2010 at 1:49 PM, ozwyzard <[email protected]> wrote:
> > Thanks for the response.  That (commit) is my suspicion as well.  So,
> > I was wondering if there is any TG configuration that is driving
> > this.  I'll try to dig and see if there are any debug settings to show
> > sqlalchemy DB transactions.  If I am still stumped I will try and post
> > to the sqlalchemy group (as you suggest).
>
> > Thanks.
>
> > On Sep 7, 1:26 am, Michael Pedersen <[email protected]> wrote:
> > > This actually took me a little bit to spot. I can't give a definitive
> > > answer, but I can provide some explanation.
>
> > > On your line in the try block where you say that "transaction.doom()
> > works
> > > if placed here before the query", that's where you give the real clue.
> > > Somehow, in your setup, a commit is being done before that query gets
> > > executed. Because of that, you are now in a new transaction when the
> > child
> > > routine raises its own exception. As you're in a new transaction, you no
> > > longer can rollback the DBSession.add(urec) that was done.
>
> > > For this particular issue, I have to strongly recommend contacting the
> > > SQLAlchemy group. Somehow, a commit is being done, and I'm not capable
> > > (personally) of figuring out why. Since SQLAlchemy is doing the commit, I
> > > have to recommend asking them for help debugging why the commit is
> > > occurring.
>
> > > On Mon, Sep 6, 2010 at 8:32 PM, ozwyzard <[email protected]> wrote:
> > > > Hello,
>
> > > > I attempted trial and error (and poked around some code), but am not
> > > > able to figure out the intended method of doing transactions in a TG 2
> > > > application.
>
> > > > import transaction
>
> > > > def parent():
> > > >    try:
> > > >        urec = User(name='test', ...)
> > > >        DBSession.add(urec)
> > > >        # transaction.doom() works if placed here before the query
> > > >        newrec = DBSession.query(User).filter(User.name='test', ...
> > > > blah)
> > > >        child_routine_that_does_dependent_DB_ops()  # DB op works but
> > > > routine raises an exception for TESTING
> > > >    except Exception, e:
> > > >        transaction.doom()  # Does not remove the urec record from DB
>
> > > > What is the correct method for doing transaction rollbacks?  Does the
> > > > rollback not occur after a successful query?  Do I need to modify some
> > > > config item?
>
> > > > (I tried setting DBSession.autoflush = False,
> > > > transaction.manager.abort(), DBSession.rollback(), but none of these
> > > > work).
>
> > > > Thanks!
>
> > > > --
> > > > You received this message because you are subscribed to the Google
> > Groups
> > > > "TurboGears" group.
> > > > To post to this group, send email to [email protected].
> > > > To unsubscribe from this group, send email to
> > > > [email protected]<turbogears%[email protected]>
> > <turbogears%[email protected]<turbogears%[email protected]>
>
> > > > .
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/turbogears?hl=en.
>
> > > --
> > > Michael J. Pedersen
> > > My IM IDs: Jabber/[email protected], ICQ/103345809,
> > AIM/pedermj022171
> > >           Yahoo/pedermj2002, MSN/[email protected]
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "TurboGears" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<turbogears%[email protected]>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/turbogears?hl=en.
>
> --
> Michael J. Pedersen
> My IM IDs: Jabber/[email protected], ICQ/103345809, AIM/pedermj022171
>           Yahoo/pedermj2002, MSN/[email protected]

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" 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/turbogears?hl=en.

Reply via email to