feat: add SQLite persistence models
This commit is contained in:
18
app/db/session.py
Normal file
18
app/db/session.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.engine import Engine
|
||||
from sqlalchemy.orm import Session, sessionmaker
|
||||
|
||||
from app.db.models import Base
|
||||
|
||||
|
||||
def create_db_engine(database_url: str) -> Engine:
|
||||
connect_args = {"check_same_thread": False} if database_url.startswith("sqlite") else {}
|
||||
return create_engine(database_url, connect_args=connect_args, future=True)
|
||||
|
||||
|
||||
def create_session_factory(engine: Engine) -> sessionmaker[Session]:
|
||||
return sessionmaker(bind=engine, autoflush=False, expire_on_commit=False)
|
||||
|
||||
|
||||
def initialize_schema(engine: Engine) -> None:
|
||||
Base.metadata.create_all(engine)
|
||||
Reference in New Issue
Block a user