From 00b613d2e0fb88dde4501947cec60ffe0885332f Mon Sep 17 00:00:00 2001 From: Ruud Date: Mon, 27 Jan 2014 21:56:47 +0100 Subject: [PATCH] Scoped session --- couchpotato/environment.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/couchpotato/environment.py b/couchpotato/environment.py index 1c5863d1..42f8fded 100644 --- a/couchpotato/environment.py +++ b/couchpotato/environment.py @@ -2,6 +2,7 @@ from couchpotato.core.event import fireEvent, addEvent from couchpotato.core.loader import Loader from couchpotato.core.settings import Settings from sqlalchemy.engine import create_engine +from sqlalchemy.orm import scoped_session from sqlalchemy.orm.session import sessionmaker import os @@ -24,6 +25,7 @@ class Env(object): _daemonized = False _desktop = None _engine = None + _session = None ''' Data paths and directories ''' _app_dir = "" @@ -54,7 +56,13 @@ class Env(object): @staticmethod def getSession(): - session = sessionmaker(bind = Env.getEngine()) + existing_session = Env.get('session') + if existing_session: + return existing_session() + + session = scoped_session(sessionmaker(bind = Env.getEngine())) + Env.set('session', session) + return session() @staticmethod