Scoped session
This commit is contained in:
@@ -2,6 +2,7 @@ from couchpotato.core.event import fireEvent, addEvent
|
|||||||
from couchpotato.core.loader import Loader
|
from couchpotato.core.loader import Loader
|
||||||
from couchpotato.core.settings import Settings
|
from couchpotato.core.settings import Settings
|
||||||
from sqlalchemy.engine import create_engine
|
from sqlalchemy.engine import create_engine
|
||||||
|
from sqlalchemy.orm import scoped_session
|
||||||
from sqlalchemy.orm.session import sessionmaker
|
from sqlalchemy.orm.session import sessionmaker
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@@ -24,6 +25,7 @@ class Env(object):
|
|||||||
_daemonized = False
|
_daemonized = False
|
||||||
_desktop = None
|
_desktop = None
|
||||||
_engine = None
|
_engine = None
|
||||||
|
_session = None
|
||||||
|
|
||||||
''' Data paths and directories '''
|
''' Data paths and directories '''
|
||||||
_app_dir = ""
|
_app_dir = ""
|
||||||
@@ -54,7 +56,13 @@ class Env(object):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def getSession():
|
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()
|
return session()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|||||||
Reference in New Issue
Block a user