24 lines
1.1 KiB
Python
24 lines
1.1 KiB
Python
|
import logging
|
|||
|
logging.basicConfig(level=logging.ERROR)
|
|||
|
logging.getLogger('sqlalchemy.pool').setLevel(logging.ERROR)
|
|||
|
logging.getLogger('sqlalchemy').setLevel(logging.ERROR)
|
|||
|
logging.getLogger('sqlalchemy').propagate = False
|
|||
|
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
|
|||
|
from sqlalchemy.orm import sessionmaker
|
|||
|
from sqlalchemy.ext.asyncio import async_sessionmaker
|
|||
|
from models import Base
|
|||
|
from config import DATABASE_URL
|
|||
|
import warnings
|
|||
|
warnings.filterwarnings("ignore")
|
|||
|
|
|||
|
# Создание асинхронного движка для подключения к базе данных
|
|||
|
engine = create_async_engine(DATABASE_URL, echo=False, pool_pre_ping=True)
|
|||
|
|
|||
|
# Создание сессий для работы с базой данных
|
|||
|
async_session = async_sessionmaker(engine, expire_on_commit=False, class_=AsyncSession)
|
|||
|
|
|||
|
# Функция для инициализации базы данных
|
|||
|
async def init_db():
|
|||
|
async with engine.begin() as conn:
|
|||
|
await conn.run_sync(Base.metadata.create_all) # Создание всех таблиц, определенных в моделях
|