invoice-processor-ml / src /database.py
GSoumyajit2005's picture
chore: Add scaffolded database layer (not yet implemented)
e8efc4f
Raw
History Blame
951 Bytes
# src/database.py
from sqlmodel import SQLModel, create_engine, Session
from typing import Generator
import os
# --- INSTRUCTIONS ---
# 1. Get credentials from environment variables (Os.getenv)
# 2. Construct the DATABASE_URL string: postgresql://user:pass@host:port/db
# 3. Create the SQLModel engine
# 4. Implement the init_db and get_session functions
# TODO: Define constants for DB params (POSTGRES_USER, etc.)
# TODO: Define DATABASE_URL
# TODO: Create 'engine' using create_engine(DATABASE_URL)
def init_db():
"""
Idempotent DB initialization.
Should create all tables defined in SQLModel metadata.
"""
# TODO: Call SQLModel.metadata.create_all(engine)
pass
def get_session() -> Generator[Session, None, None]:
"""
Dependency for yielding a database session.
Useful for FastAPI dependencies or context usage.
"""
# TODO: Open a session with the engine, yield it, and ensure it closes
pass