mirror of
https://github.com/FerraSoft/bottohelp.git
synced 2026-08-06 21:55:03 +00:00
35 lines
2.3 KiB
SQL
35 lines
2.3 KiB
SQL
-- Миграция базы данных для внедрения системы ролей
|
|
-- Дата создания: 27 октября 2025 г.
|
|
-- Цель: Создание таблицы-справочника ролей и обновление таблицы пользователей
|
|
|
|
-- Создаем таблицу ролей
|
|
CREATE TABLE IF NOT EXISTS roles (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT UNIQUE NOT NULL,
|
|
display_name TEXT NOT NULL,
|
|
description TEXT,
|
|
permissions TEXT, -- JSON строка с разрешениями
|
|
is_active BOOLEAN DEFAULT 1,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Вставляем стандартные роли
|
|
INSERT OR IGNORE INTO roles (id, name, display_name, description, permissions) VALUES
|
|
(1, 'user', 'Пользователь', 'Обычный пользователь чата', '{"can_use_basic_commands": true, "can_play_games": true}'),
|
|
(2, 'moderator', 'Модератор', 'Модератор чата с правами управления', '{"can_use_basic_commands": true, "can_play_games": true, "can_moderate": true, "can_warn_users": true}'),
|
|
(3, 'admin', 'Администратор', 'Администратор бота с полными правами', '{"can_use_basic_commands": true, "can_play_games": true, "can_moderate": true, "can_warn_users": true, "can_manage_users": true, "can_schedule_posts": true, "can_export_data": true}');
|
|
|
|
-- Добавляем колонку role_id в таблицу users
|
|
ALTER TABLE users ADD COLUMN role_id INTEGER DEFAULT 1;
|
|
|
|
-- Создаем индекс для быстрого поиска по ролям
|
|
CREATE INDEX IF NOT EXISTS idx_users_role_id ON users(role_id);
|
|
|
|
-- Добавляем foreign key constraint (SQLite не поддерживает добавление FK после создания таблицы)
|
|
-- Для существующих баз данных это нужно будет сделать вручную
|
|
|
|
-- Выводим информацию о миграции
|
|
SELECT 'Migration completed: Added roles table and role_id to users table' as migration_status;
|
|
SELECT COUNT(*) as roles_count FROM roles;
|
|
SELECT COUNT(*) as users_count FROM users; |