See: http://www.sqlalchemy.org/docs/05/reference/orm/sessions.html#sqlalchemy.orm.create_session
“The defaults of create_session() are the opposite of that of sessionmaker(); autoflush and expire_on_commit are False, autocommit is True. [...] It is recommended to use sessionmaker() instead of create_session().” Isn't that it? - G. On Wed, Mar 4, 2009 at 7:21 PM, Mike Orr <sluggos...@gmail.com> wrote: > > I have a standalone utility using a model based on Declarative on > MySQL using SQLAlchemy 0.5.2. Most of the code is at the SQL level > but at one point I use the ORM to update or insert a summary record. > So I figured I'd use create_session because it's a single-threaded > utility. > > === > sess = orm.create_session(bind=conn) > q = sess.query(model.Monthly).filter_by(...) > monthly = q.first() > if not monthly: > monthly = model.Monthly() > ... > sess.add(monthly) > ... > sess.commit() > === > > That raises "sqlalchemy.exc.InvalidRequestError: No transaction is > begun." To work around that I have to put "sess.begin()" after > creating the session. But why? I don't have to do this when using > scoped_session in Pylons. The SQLAlchemy docs seem to say that it > automatically manages transactions if you don't change the default > session arguments, and that this works identically with Session, > create_session, and sessionmaker. So why is it behaving differently > here? > > -- > Mike Orr <sluggos...@gmail.com> > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---