#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Миграция рангов пользователей к новой военной системе """ import sqlite3 import sys import os # Добавляем текущую директорию в путь для импорта sys.path.append(os.path.dirname(os.path.abspath(__file__))) from database_sqlite import Database def migrate_ranks(): """Миграция рангов пользователей к новой системе""" db = Database() try: # Получаем всех пользователей cursor = db.connection.cursor() cursor.execute("SELECT telegram_id, reputation, rank FROM users") users = cursor.fetchall() print(f"Найдено {len(users)} пользователей для миграции") migrated_count = 0 for user_id, reputation, old_rank in users: # Рассчитываем новый ранг по новой системе new_rank = db.calculate_rank(reputation) # Обновляем ранг, если он изменился if new_rank != old_rank: cursor.execute("UPDATE users SET rank = ? WHERE telegram_id = ?", (new_rank, user_id)) print(f"Пользователь {user_id}: '{old_rank}' -> '{new_rank}' (репутация: {reputation})") migrated_count += 1 db.connection.commit() print(f"\nМиграция завершена! Обновлено рангов: {migrated_count}") except sqlite3.Error as error: print(f"Ошибка при миграции: {error}") finally: db.close() if __name__ == "__main__": print("Запуск миграции рангов к военной системе...") migrate_ranks() print("Миграция завершена!")