Files
tg_bot_language/database/db.py

30 lines
838 B
Python
Raw Normal View History

from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
from config.settings import settings
from database.models import Base
# Создание движка базы данных
engine = create_async_engine(
settings.database_url,
echo=settings.debug,
future=True
)
# Фабрика сессий
async_session_maker = async_sessionmaker(
engine,
class_=AsyncSession,
expire_on_commit=False
)
async def init_db():
"""Инициализация базы данных (создание таблиц)"""
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
async def get_session() -> AsyncSession:
"""Получение сессии базы данных"""
async with async_session_maker() as session:
yield session