/
bioxakep
/
Kevin
Обзор
Документация
Войти
/
bioxakep
/
Kevin
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
bot_db/client.py
41 строка
989 B
bioxakep
Total refactoring
03 июн 2025, 21:28
03 июн 2025, 21:28
4ab83e6
Код
Авторство
О чём код?
from sqlalchemy import create_engine, MetaData from sqlalchemy.orm import sessionmaker from config import bot_config from bot_db.tables import BotBase class SQLiteClient: def __init__(self, echo: bool = False): self.engine = create_engine( url=f"sqlite:///{bot_config.db_path}", echo=echo ) self.session_factory = sessionmaker( bind=self.engine, autoflush=False, autocommit=False, expire_on_commit=False, ) self.metadata = MetaData() self.metadata.reflect(bind=self.engine) def re_create(self): try: tables = list(self.metadata.tables) for t in tables: table = self.metadata.tables.get(t) table.drop(self.engine, checkfirst=True) self.metadata.remove(table) self.metadata = BotBase.metadata self.metadata.create_all(bind=self.engine) return True, "OK" except Exception as e: return False, ','.join(e.args) def __enter__(self): return self db_client = SQLiteClient() if __name__ == '__main__': db_client.re_create()