aiozab/utils/db/__init__.py
2025-02-23 12:05:49 +05:00

28 lines
939 B
Python

# utils/db/__init__.py
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from sqlalchemy.orm import sessionmaker, declarative_base
# Создание асинхронного движка SQLAlchemy
DATABASE_URL = 'sqlite+aiosqlite:///db/telezab.db'
engine = create_async_engine(DATABASE_URL, echo=False)
AsyncSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine, class_=AsyncSession)
# Базовый класс для всех моделей
Base = declarative_base()
# Импорт моделей
from .whitelist import Whitelist
from .user_events import UserEvent
from .subscriptions import Subscription
from .regions import Region
from .events import Event
from .admins import Admin
# Создание всех таблиц
async def init_db():
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
print("INFO:SQLAlchemy:Database inited")