mirror of
https://github.com/FerraSoft/bottohelp.git
synced 2026-08-06 21:55:03 +00:00
Подготовка к релизу
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
import sqlite3
|
||||
|
||||
def migrate_database():
|
||||
"""Миграция базы данных для добавления недостающих колонок"""
|
||||
try:
|
||||
conn = sqlite3.connect('telegram_bot.db')
|
||||
cursor = conn.cursor()
|
||||
|
||||
print("НАЧАЛО МИГРАЦИИ БАЗЫ ДАННЫХ")
|
||||
|
||||
# Проверяем, есть ли колонка telegram_id в таблице users
|
||||
cursor.execute("PRAGMA table_info(users)")
|
||||
columns = cursor.fetchall()
|
||||
has_telegram_id = any(col[1] == 'telegram_id' for col in columns)
|
||||
|
||||
if not has_telegram_id:
|
||||
print("Добавляем колонку telegram_id в таблицу users...")
|
||||
|
||||
# Добавляем колонку telegram_id
|
||||
cursor.execute("ALTER TABLE users ADD COLUMN telegram_id INTEGER")
|
||||
|
||||
# Если user_id и telegram_id должны быть разными, здесь можно добавить логику преобразования
|
||||
# Пока предполагаем, что они эквивалентны
|
||||
cursor.execute("UPDATE users SET telegram_id = user_id WHERE telegram_id IS NULL")
|
||||
|
||||
print("Колонка telegram_id успешно добавлена")
|
||||
else:
|
||||
print("Колонка telegram_id уже существует")
|
||||
|
||||
# Проверяем таблицу scores - она должна ссылаться на правильный user_id
|
||||
cursor.execute("PRAGMA table_info(scores)")
|
||||
scores_columns = cursor.fetchall()
|
||||
print(f"Структура таблицы scores проверена: {len(scores_columns)} колонок")
|
||||
|
||||
# Проверяем, что все необходимые таблицы существуют
|
||||
required_tables = ['users', 'scores', 'achievements', 'user_achievements', 'warnings', 'donations', 'errors']
|
||||
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
|
||||
existing_tables = [row[0] for row in cursor.fetchall()]
|
||||
|
||||
print(f"Существующие таблицы: {existing_tables}")
|
||||
print(f"Необходимые таблицы: {required_tables}")
|
||||
|
||||
for table in required_tables:
|
||||
if table in existing_tables:
|
||||
print(f"Таблица {table}: OK")
|
||||
else:
|
||||
print(f"Таблица {table}: ОТСУТСТВУЕТ")
|
||||
|
||||
# Проверяем несколько записей для понимания структуры данных
|
||||
try:
|
||||
cursor.execute("SELECT user_id, username, first_name FROM users LIMIT 3")
|
||||
sample_users = cursor.fetchall()
|
||||
if sample_users:
|
||||
print(f"\nПримеры пользователей ({len(sample_users)} записей):")
|
||||
for i, user in enumerate(sample_users, 1):
|
||||
print(f" Пользователь {i}: ID={user[0]}, Username={user[1]}, Name={user[2]}")
|
||||
else:
|
||||
print("\nТаблица users пуста")
|
||||
except Exception as e:
|
||||
print(f"Ошибка чтения пользователей: {e}")
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
print("МИГРАЦИЯ ЗАВЕРШЕНА УСПЕШНО")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"Ошибка миграции базы данных: {e}")
|
||||
return False
|
||||
|
||||
if __name__ == "__main__":
|
||||
migrate_database()
|
||||
Reference in New Issue
Block a user