58 lines
1.8 KiB
Python
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()
|