diff options
| author | 2026-07-01 23:06:39 +0200 | |
|---|---|---|
| committer | 2026-07-01 23:06:39 +0200 | |
| commit | 4105c3b777e82cb4b6dadf27c109dd21010ad8ce (patch) | |
| tree | ab497c0bac381d27765cff389bcf855a9e0bf0b7 /db/session.py | |
| parent | d8968acab83c7a91b01eee4b35828a2b05c8dd6b (diff) | |
| download | server-4105c3b777e82cb4b6dadf27c109dd21010ad8ce.tar.gz server-4105c3b777e82cb4b6dadf27c109dd21010ad8ce.tar.bz2 server-4105c3b777e82cb4b6dadf27c109dd21010ad8ce.zip | |
Added db support
Diffstat (limited to 'db/session.py')
| -rw-r--r-- | db/session.py | 21 |
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 @@ | |||
| 1 | from contextlib import contextmanager | ||
| 2 | |||
| 3 | from sqlalchemy import create_engine | ||
| 4 | from sqlalchemy.orm import sessionmaker, scoped_session | ||
| 5 | from sqlmodel import Session | ||
| 6 | |||
| 7 | from conf import DATABASE_URL | ||
| 8 | from utils.json import json_serializer | ||
| 9 | |||
| 10 | |||
| 11 | engine = create_engine(DATABASE_URL, echo=True, future=True, json_serializer=json_serializer, pool_size=100, pool_recycle=3600) | ||
| 12 | session_factory = sessionmaker(engine, class_=Session) | ||
| 13 | ScopedSession = scoped_session(session_factory=session_factory) | ||
| 14 | |||
| 15 | def get_session(): | ||
| 16 | with ScopedSession() as session: | ||
| 17 | yield session | ||
| 18 | |||
| 19 | @contextmanager | ||
| 20 | def get_session_context(): | ||
| 21 | yield from get_session() | ||
