domovoy_bot/database/migrate_add_achievements.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

48 lines
1.6 KiB
Python
Raw Permalink 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.12: создать таблицу achievements для достижений пользователей
"""
import sqlite3
import asyncio
DB_PATH = 'database/domovoy.db'
async def migrate():
"""Создать таблицу achievements"""
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
# Проверяем, есть ли уже таблица achievements
cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='achievements'")
existing = cursor.fetchone()
if existing:
print(" Таблица achievements уже существует")
else:
print(" Создаём таблицу achievements...")
cursor.execute("""
CREATE TABLE achievements (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id BIGINT NOT NULL,
achievement_type TEXT NOT NULL,
earned_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
metadata TEXT,
FOREIGN KEY (user_id) REFERENCES users(user_id)
)
""")
# Создаём индексы
cursor.execute("CREATE INDEX ix_achievements_user ON achievements(user_id)")
cursor.execute("CREATE INDEX ix_achievements_type ON achievements(achievement_type)")
print("✅ Таблица achievements создана")
print("✅ Индексы созданы")
conn.commit()
conn.close()
print("✅ Миграция v1.12 завершена!")
if __name__ == '__main__':
asyncio.run(migrate())