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,35 @@
|
||||
-- Миграция базы данных для внедрения системы ролей
|
||||
-- Дата создания: 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;
|
||||
Reference in New Issue
Block a user