On Mon, Jan 11, 2010 at 4:07 PM, Manlio Perillo <manlio.peri...@gmail.com> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi. > > I'm updating some of my code to SQLALchemy 0.6, and I have noted a > problem with the sessionmaker function. > > The problem is a compatibility one: old versions use the transactional > parameter, new ones the autocommit parameter. > > Usually, to handle these problems I use the try/except method: > > try: > return orm.sessionmaker(bind=bind, autocommit=autocommit) > except TypeError: > # COMPAT: SQLAlchemy 0.4.x, deprecated in 0.5.x > transactional = not autocommit > return orm.sessionmaker(bind=bind, transactional=transactional) > > > However this does not work, since error is raise only ewhen the actual > Session instance is created. > > > As far as can understand, the sessionmaker function supports keyword > arguments since user can specify a custom session class to use. > > Can error handling be improved?
How about: try: orm.create_session(autocommit=autocommit) except TypeError: # COMPAT: SQLAlchemy 0.4.x, deprecated in 0.5.x transactional = not autocommit return orm.sessionmaker(bind=bind, transactional=transactional) else: return orm.sessionmaker(bind=bind, autocommit=autocommit) Creating and disposing a session via create_session() in this way isn't particularly expensive and won't initiate any database connections or activity.
-- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@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.