Files
Music-site/backend/migrate_db.py
2026-02-24 21:24:16 +06:00

53 lines
2.1 KiB
Python

"""
Скрипт для миграции базы данных - добавляет поля is_admin и is_banned
"""
import sqlite3
def migrate():
conn = sqlite3.connect('music_platform.db')
cursor = conn.cursor()
try:
# Добавляем поле is_admin
cursor.execute("ALTER TABLE users ADD COLUMN is_admin BOOLEAN DEFAULT 0")
print("✓ Добавлено поле is_admin")
except sqlite3.OperationalError as e:
if "duplicate column name" in str(e):
print("✓ Поле is_admin уже существует")
else:
print(f"✗ Ошибка при добавлении is_admin: {e}")
try:
# Добавляем поле is_banned
cursor.execute("ALTER TABLE users ADD COLUMN is_banned BOOLEAN DEFAULT 0")
print("✓ Добавлено поле is_banned")
except sqlite3.OperationalError as e:
if "duplicate column name" in str(e):
print("✓ Поле is_banned уже существует")
else:
print(f"✗ Ошибка при добавлении is_banned: {e}")
conn.commit()
# Показываем всех пользователей
cursor.execute("SELECT id, username, is_admin, is_banned FROM users")
users = cursor.fetchall()
print("\nТекущие пользователи:")
for user in users:
print(f"ID: {user[0]}, Username: {user[1]}, Admin: {user[2]}, Banned: {user[3]}")
# Предлагаем сделать первого пользователя админом
if users:
make_admin = input(f"\nСделать пользователя '{users[0][1]}' администратором? (y/n): ")
if make_admin.lower() == 'y':
cursor.execute("UPDATE users SET is_admin = 1 WHERE id = ?", (users[0][0],))
conn.commit()
print(f"✓ Пользователь '{users[0][1]}' теперь администратор")
conn.close()
print("\n✓ Миграция завершена!")
if __name__ == "__main__":
migrate()