summaryrefslogtreecommitdiffstats
path: root/db/session.py
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@vanderlee.io>2026-07-01 23:06:39 +0200
committerGravatar Tom van der Lee <tom@vanderlee.io>2026-07-01 23:06:39 +0200
commit4105c3b777e82cb4b6dadf27c109dd21010ad8ce (patch)
treeab497c0bac381d27765cff389bcf855a9e0bf0b7 /db/session.py
parentd8968acab83c7a91b01eee4b35828a2b05c8dd6b (diff)
downloadserver-4105c3b777e82cb4b6dadf27c109dd21010ad8ce.tar.gz
server-4105c3b777e82cb4b6dadf27c109dd21010ad8ce.tar.bz2
server-4105c3b777e82cb4b6dadf27c109dd21010ad8ce.zip
Added db support
Diffstat (limited to 'db/session.py')
-rw-r--r--db/session.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/db/session.py b/db/session.py
new file mode 100644
index 0000000..4d83649
--- /dev/null
+++ b/db/session.py
@@ -0,0 +1,21 @@
1from contextlib import contextmanager
2
3from sqlalchemy import create_engine
4from sqlalchemy.orm import sessionmaker, scoped_session
5from sqlmodel import Session
6
7from conf import DATABASE_URL
8from utils.json import json_serializer
9
10
11engine = create_engine(DATABASE_URL, echo=True, future=True, json_serializer=json_serializer, pool_size=100, pool_recycle=3600)
12session_factory = sessionmaker(engine, class_=Session)
13ScopedSession = scoped_session(session_factory=session_factory)
14
15def get_session():
16 with ScopedSession() as session:
17 yield session
18
19@contextmanager
20def get_session_context():
21 yield from get_session()