table clear fixed

This commit is contained in:
2025-07-21 21:13:36 +03:00
parent 0520a1117c
commit 0413460c3a
2 changed files with 14 additions and 2 deletions

View File

@@ -2,6 +2,7 @@
import sqlite3
import logging
import os
# Настройка логирования для модуля БД
log = logging.getLogger(__name__)
@@ -15,6 +16,16 @@ class DatabaseManager:
self.db_path = db_path
self.conn = None
# Проверяем, существует ли директория для файла БД, и создаем ее, если нет.
db_dir = os.path.dirname(self.db_path)
if db_dir and not os.path.exists(db_dir):
try:
os.makedirs(db_dir)
log.info(f"Создана директория для базы данных: {db_dir}")
except OSError as e:
log.error(f"Не удалось создать директорию для БД {db_dir}: {e}")
raise # Перевыбрасываем исключение, так как без директории работа невозможна
def __enter__(self):
"""Открывает соединение с БД при входе в контекстный менеджер."""
try:
@@ -122,7 +133,7 @@ class DatabaseManager:
log.info(f"Очистка таблиц: {', '.join(table_names)}")
for table in table_names:
# Проверяем, что имя таблицы "безопасное"
if table.isalnum():
if all(c.isalnum() or c == '_' for c in table):
self._execute_query(f"DELETE FROM {table}")
else:
log.warning(f"Попытка очистить таблицу с некорректным именем: {table}")