domovoy_bot/database/migrate_add_profile_history.py
Admin ba4676b0af v1.0 MVP - Инициализация проекта 🏠
 Регистрация и верификация жильцов
 Рейтинг активности (уровни)
 Детект шпионов (Score 0-100)
 Анти-мат система (3 предупреждения → бан)
 Админ-панель с рассылкой
 Учёт квартир (несколько жильцов)
 Телефоны экстренных служб и мастеров
 Еженедельный экспорт JSON
 Прокси (socks5) для обхода РКН

Бекап: backups/versions/v1.0_mvp_2026-02-26/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:54:16 +00:00

50 lines
1.7 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Миграция v1.10: создать таблицу profile_history для истории изменений профиля
"""
import sqlite3
import asyncio
DB_PATH = 'database/domovoy.db'
async def migrate():
"""Создать таблицу profile_history"""
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
# Проверяем, есть ли уже таблица profile_history
cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='profile_history'")
existing = cursor.fetchone()
if existing:
print(" Таблица profile_history уже существует")
else:
print(" Создаём таблицу profile_history...")
cursor.execute("""
CREATE TABLE profile_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id BIGINT NOT NULL,
field_name TEXT NOT NULL,
old_value TEXT,
new_value TEXT,
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id)
)
""")
# Создаём индексы
cursor.execute("CREATE INDEX ix_profile_history_user ON profile_history(user_id)")
cursor.execute("CREATE INDEX ix_profile_history_field ON profile_history(field_name)")
cursor.execute("CREATE INDEX ix_profile_history_time ON profile_history(changed_at)")
print("✅ Таблица profile_history создана")
print("✅ Индексы созданы")
conn.commit()
conn.close()
print("✅ Миграция v1.10 завершена!")
if __name__ == '__main__':
asyncio.run(migrate())