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