Add new deps, writen a db engine, docker-compose and .env-example

This commit is contained in:
d3m0k1d
2025-11-23 14:09:32 +03:00
parent 2aa2c0a3fa
commit e1b13d6557
8 changed files with 131 additions and 0 deletions

42
backend/app/db_engine.py Normal file
View File

@@ -0,0 +1,42 @@
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine, async_sessionmaker
from sqlalchemy.orm import DeclarativeBase
import dotenv
import os
dotenv.load_dotenv()
PG_USER = dotenv.get_key(".env", "PG_USER")
PG_PASSWORD = dotenv.get_key(".env", "PG_PASSWORD")
PG_HOST = dotenv.get_key(".env", "PG_HOST")
PG_PORT = dotenv.get_key(".env", "PG_PORT")
PG_DB = dotenv.get_key(".env", "PG_DB")
DATABASE_URL = (
f"postgresql+asyncpg://{PG_USER}:{PG_PASSWORD}@{PG_HOST}:{PG_PORT}/{PG_DB}"
)
engine = create_async_engine(
DATABASE_URL,
echo=False,
future=True,
)
async_session_maker = async_sessionmaker(
engine,
class_=AsyncSession,
expire_on_commit=False,
)
class Base(DeclarativeBase):
pass
async def get_async_session():
async with async_session_maker() as session:
yield session
async def init_db():
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)