diff --git a/scripts/migrate_db.py b/scripts/migrate_db.py new file mode 100644 index 0000000..60d78b7 --- /dev/null +++ b/scripts/migrate_db.py @@ -0,0 +1,40 @@ +import sqlite3 +import os + +DB_PATH = 'data/scud_orion_ai.db' + + +def migrate(): + if not os.path.exists(DB_PATH): + print(f"База данных {DB_PATH} не найдена. Создание будет выполнено при первом запуске.") + return + + conn = sqlite3.connect(DB_PATH) + cursor = conn.cursor() + + # Проверяем существующие колонки в таблице scud_logs + cursor.execute("PRAGMA table_info(scud_logs);") + columns = [row[1] for row in cursor.fetchall()] + + # Добавляем столбец first_activity (Первая активность) + if 'first_activity' not in columns: + cursor.execute("ALTER TABLE scud_logs ADD COLUMN first_activity TEXT DEFAULT '—';") + print("Добавлена колонка 'first_activity'") + + # Добавляем столбец anomaly_flag (Флаг аномалии СКУД) + if 'anomaly_flag' not in columns: + cursor.execute("ALTER TABLE scud_logs ADD COLUMN anomaly_flag TEXT DEFAULT 'NONE';") + print("Добавлена колонка 'anomaly_flag'") + + # Добавляем столбец snapshot_time (Время среза/выгрузки) + if 'snapshot_time' not in columns: + cursor.execute("ALTER TABLE scud_logs ADD COLUMN snapshot_time TEXT DEFAULT NULL;") + print("Добавлена колонка 'snapshot_time'") + + conn.commit() + conn.close() + print("Миграция схемы БД успешно завершена!") + + +if __name__ == "__main__": + migrate() \ No newline at end of file