forked from ChebupelAnfica/Anketa_bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
database.py
27 lines (21 loc) · 1.06 KB
/
database.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Импортируем необходимые модули
import logging
from sqlalchemy.ext.asyncio import AsyncAttrs, async_sessionmaker, create_async_engine
from sqlalchemy.orm import DeclarativeBase
# Создаем асинхронный движок базы данных
engine = create_async_engine("sqlite+aiosqlite:///./database.db", echo=True)
# Создаем фабрику асинхронных сессий
SessionLocal = async_sessionmaker(bind=engine)
# Определяем базовый класс для моделей
class Base(AsyncAttrs, DeclarativeBase):
pass
# Определяем функцию для создания таблиц в базе данных
async def create_tables() -> None:
try:
async with engine.begin() as conn:
# Создаем таблицы в базе данных
await conn.run_sync(Base.metadata.create_all)
logging.info("Tables created successfully")
except Exception as e:
logging.error(f"Error creating tables: {e}")
raise e