Files
Krow-workspace/app_core/db/database.py
2026-04-07 12:31:22 +05:30

22 lines
696 B
Python

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from app_core.config.settings import AppSettings
settings = AppSettings()
if not settings.database_url:
raise RuntimeError(
"Database configuration missing. Set DATABASE_URL or DB_HOST/DB_PORT/DB_NAME/DB_USER/DB_PASSWORD in a .env file at the project root."
)
engine = create_engine(settings.database_url, pool_pre_ping=True, future=True, echo=settings.db_echo)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine, future=True)
Base = declarative_base()
def get_db_session():
db = SessionLocal()
try:
yield db
finally:
db.close()