domovoy_bot/database/migrate_add_email_audit.py

58 lines
1.8 KiB
Python

"""
Миграция: Добавление таблицы для аудита почты
"""
import sqlite3
import os
from pathlib import Path
def migrate():
# Путь к БД
base_dir = Path(__file__).resolve().parent.parent
db_path = base_dir / 'database' / 'domovoy.db'
print(f"Миграция БД: {db_path}")
if not db_path.exists():
print("Ошибка: БД не найдена!")
return
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
try:
# Создаем таблицу email_audit
cursor.execute('''
CREATE TABLE IF NOT EXISTS email_audit (
id INTEGER PRIMARY KEY AUTOINCREMENT,
domain TEXT UNIQUE NOT NULL,
description TEXT,
inbound_count INTEGER DEFAULT 0,
outbound_count INTEGER DEFAULT 0,
last_email_date DATETIME,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
''')
# Добавляем таблицу для логов экспорта (чтобы бот знал когда был последний запуск)
cursor.execute('''
CREATE TABLE IF NOT EXISTS email_export_logs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
start_time DATETIME DEFAULT CURRENT_TIMESTAMP,
end_time DATETIME,
status TEXT,
new_emails_count INTEGER DEFAULT 0,
report_path TEXT
)
''')
conn.commit()
print("✅ Таблицы email_audit и email_export_logs успешно созданы")
except Exception as e:
print(f"❌ Ошибка при миграции: {e}")
conn.rollback()
finally:
conn.close()
if __name__ == '__main__':
migrate()