53 lines
2.1 KiB
Python
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()
|