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) # Создание всех таблиц, определенных в моделях
|