- Node group CRUD operations with traffic-based filtering - Three grouping modes: average distribution, subscription-based, and traffic-based - Automatic and manual group recalculation with history tracking - Group assignment preview before applying changes - User subscription group locking to prevent automatic reassignment - Subscribe-to-group mapping configuration - Group calculation history and detailed reports - System configuration for group management (enabled/mode/auto_create) Database: - Add node_group table for group definitions - Add group_history and group_history_detail tables for tracking - Add node_group_ids (JSON) to nodes and subscribe tables - Add node_group_id and group_locked fields to user_subscribe table - Add migration files for schema changes
29 lines
1.1 KiB
SQL
29 lines
1.1 KiB
SQL
-- Purpose: Rollback node group management tables
|
|
-- Author: Tension
|
|
-- Date: 2025-02-23
|
|
-- Updated: 2025-03-06
|
|
|
|
-- ===== Remove system configuration entries =====
|
|
DELETE FROM `system` WHERE `category` = 'group' AND `key` IN ('enabled', 'mode', 'auto_create_group');
|
|
|
|
-- ===== Remove columns and indexes from subscribe table =====
|
|
ALTER TABLE `subscribe` DROP INDEX IF EXISTS `idx_node_group_id`;
|
|
ALTER TABLE `subscribe` DROP COLUMN IF EXISTS `node_group_id`;
|
|
ALTER TABLE `subscribe` DROP COLUMN IF EXISTS `node_group_ids`;
|
|
|
|
-- ===== Remove columns and indexes from user_subscribe table =====
|
|
ALTER TABLE `user_subscribe` DROP INDEX IF EXISTS `idx_node_group_id`;
|
|
ALTER TABLE `user_subscribe` DROP COLUMN IF EXISTS `node_group_id`;
|
|
|
|
-- ===== Remove columns and indexes from nodes table =====
|
|
ALTER TABLE `nodes` DROP COLUMN IF EXISTS `node_group_ids`;
|
|
|
|
-- ===== Drop group_history_detail table =====
|
|
DROP TABLE IF EXISTS `group_history_detail`;
|
|
|
|
-- ===== Drop group_history table =====
|
|
DROP TABLE IF EXISTS `group_history`;
|
|
|
|
-- ===== Drop node_group table =====
|
|
DROP TABLE IF EXISTS `node_group`;
|