mgbam commited on
Commit
2e88094
·
verified ·
1 Parent(s): 0a5cbe4

Update models/db.py

Browse files
Files changed (1) hide show
  1. models/db.py +29 -0
models/db.py CHANGED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sqlmodel import SQLModel, create_engine, Session
2
+ from typing import Generator
3
+ from contextlib import contextmanager
4
+
5
+ from config.settings import settings
6
+
7
+ # The database_url from settings will be used here
8
+ engine = create_engine(settings.DATABASE_URL, echo=True if settings.LOG_LEVEL == "DEBUG" else False)
9
+
10
+ def create_db_and_tables():
11
+ SQLModel.metadata.create_all(engine)
12
+
13
+ @contextmanager
14
+ def get_session_context() -> Generator[Session, None, None]:
15
+ session = Session(engine)
16
+ try:
17
+ yield session
18
+ session.commit()
19
+ except Exception:
20
+ session.rollback()
21
+ raise
22
+ finally:
23
+ session.close()
24
+
25
+ def get_session() -> Generator[Session, None, None]:
26
+ # This is a generator function that can be used with `Depends` in FastAPI
27
+ # For Streamlit, we'll use the context manager directly or a simpler session management
28
+ with Session(engine) as session:
29
+ yield session