Files
bottohelp/test_db_connection.py
T

74 lines
2.6 KiB
Python

import sqlite3
# Тестируем подключение к базе данных
def test_db():
try:
# Подключаемся к базе данных
conn = sqlite3.connect('telegram_bot.db')
cursor = conn.cursor()
# Проверяем существующие таблицы
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
tables = cursor.fetchall()
table_names = [table[0] for table in tables]
# Проверяем, есть ли таблица scores
has_scores = 'scores' in table_names
# Создаем таблицу scores если её нет
if not has_scores:
cursor.execute('''
CREATE TABLE scores (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER UNIQUE NOT NULL,
total_score INTEGER DEFAULT 0,
message_count INTEGER DEFAULT 0,
game_wins INTEGER DEFAULT 0,
donations_total REAL DEFAULT 0.0,
last_updated DATETIME DEFAULT CURRENT_TIMESTAMP
)
''')
# Проверяем таблицу users
if 'users' not in table_names:
cursor.execute('''
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
telegram_id INTEGER UNIQUE NOT NULL,
username TEXT,
first_name TEXT,
last_name TEXT,
joined_date DATETIME DEFAULT CURRENT_TIMESTAMP,
last_activity DATETIME DEFAULT CURRENT_TIMESTAMP,
reputation INTEGER DEFAULT 0,
rank TEXT DEFAULT 'Новичок',
warnings INTEGER DEFAULT 0,
is_active BOOLEAN DEFAULT 1,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
''')
# Сохраняем изменения
conn.commit()
# Проверяем таблицы еще раз
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
tables = cursor.fetchall()
final_table_names = [table[0] for table in tables]
# Закрываем соединение
conn.close()
return True
except Exception as e:
return False
# Запускаем тест
if __name__ == "__main__":
success = test_db()
if success:
print("SUCCESS")
else:
print("FAILED")