archive-backend/core/db.py
2026-11-07 17:27:59 +00:00

38 lines
759 B
Python

import os
from dotenv import load_dotenv
from sqlalchemy.ext.asyncio import (
AsyncSession,
async_sessionmaker,
create_async_engine,
)
from sqlalchemy.orm import DeclarativeBase
from .config import BASE_DIR
class Base(DeclarativeBase):
pass
dotenv_path = BASE_DIR / '.env'
load_dotenv(dotenv_path=dotenv_path)
DB_PASSWORD = os.getenv("DB_PASSWORD")
DB_USER = os.getenv("DB_USER")
DB_NAME = os.getenv("DB_NAME")
DB_URL = f"postgresql+psycopg://{DB_USER}:{DB_PASSWORD}@127.0.0.1:5432/{DB_NAME}"
engine = create_async_engine(DB_URL, echo=True)
SessionLocal = async_sessionmaker(
bind=engine,
expire_on_commit=False,
class_=AsyncSession,
)
async def get_db():
async with SessionLocal() as session:
yield session