aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/database
diff options
context:
space:
mode:
authorJ08nY2017-06-18 00:52:41 +0200
committerJ08nY2017-06-18 00:52:41 +0200
commitaa407033bdb43cf09b1eeff2aa06a80a78ee00d7 (patch)
treec5b675fa5e1897399bd4479b443a05b8e405801d /src/mailman_pgp/database
parent59624023aa6ce5468cf24bd891faae401a849ec1 (diff)
downloadmailman-pgp-aa407033bdb43cf09b1eeff2aa06a80a78ee00d7.tar.gz
mailman-pgp-aa407033bdb43cf09b1eeff2aa06a80a78ee00d7.tar.zst
mailman-pgp-aa407033bdb43cf09b1eeff2aa06a80a78ee00d7.zip
Diffstat (limited to 'src/mailman_pgp/database')
-rw-r--r--src/mailman_pgp/database/__init__.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/mailman_pgp/database/__init__.py b/src/mailman_pgp/database/__init__.py
index b799942..5ea8f94 100644
--- a/src/mailman_pgp/database/__init__.py
+++ b/src/mailman_pgp/database/__init__.py
@@ -6,7 +6,7 @@ from mailman.config import config as mailman_config
from mailman.utilities.string import expand
from public import public
from sqlalchemy import create_engine
-from sqlalchemy.orm import sessionmaker
+from sqlalchemy.orm import scoped_session, sessionmaker
from mailman_pgp.config import config
from mailman_pgp.model.base import Base
@@ -16,13 +16,16 @@ from mailman_pgp.model.base import Base
class Database:
def __init__(self):
url = config.get('db', 'url')
- self.url = expand(url, None, mailman_config.paths)
- self.engine = create_engine(self.url)
- Session = sessionmaker(bind=self.engine)
- self.session = Session()
+ self._url = expand(url, None, mailman_config.paths)
+ self.engine = create_engine(self._url)
+ self._scoped_session = scoped_session(sessionmaker(bind=self.engine))
Base.metadata.create_all(self.engine)
self.session.commit()
+ @property
+ def session(self):
+ return self._scoped_session()
+
@public
@contextmanager