On Jun 4, 2008, at 12:02 PM, Hermann Himmelbauer wrote:
Hi, Regarding to the discussion some days ago with the SQLAlchemy Zope3 integration, I still have problems with retrieving the session. I currently use a utility for the engine, which seems to work well.
However, for retrieving the session, I tried to use the following pattern (many thanks to Michael Bayer, btw.):
-------- database module ----------- SASession = scoped_session(sessionmaker( transactional = True, autoflush = True, extension = ZopeTransactionExtension()))
def getSASession(): SASession.remove() engine = getUtility(ISAEngineUtility).getEngine() s = SASession() s.bind = engine return s --------------------------------------------
In my application, I then use getSASession() to retrieve my session.
However, what I think is not that beautiful is the "s.bind = engine" part. Are there any suggestions how to improve this?
FTR, my suggestion here is to configure/tear down sessions upon request boundaries, as described in http://www.sqlalchemy.org/docs/04/session.html#unitofwork_contextual_lifespa... .