28 lines
939 B
Python
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")
|
|
|