Files
TG_autoposter/app/database/__init__.py
2025-12-18 05:55:32 +09:00

34 lines
788 B
Python

from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker
from sqlalchemy import pool
from app.models import Base
import os
DATABASE_URL = os.getenv(
'DATABASE_URL',
'sqlite+aiosqlite:///./autoposter.db'
)
engine = create_async_engine(
DATABASE_URL,
echo=False,
poolclass=pool.NullPool
)
AsyncSessionLocal = 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():
"""Получить сессию БД"""
async with AsyncSessionLocal() as session:
yield session