Files
railwaysystem/RuoYi-Vue/sql/demo/reset_demo_data.sql
T

54 lines
2.1 KiB
PL/PgSQL

-- ==============================================================================
-- RailwaySystem Clean Demo 资产: reset_demo_data.sql
-- 适用数据库: KingbaseES V009R003C018 (schema: public)
-- 执行目标: 一键清空并重置所有 Demo 演示数据,将系统还原为黄金演示就绪状态
-- 安全防护: 仅允许在 training_demo_clean 库执行,杜绝误触任何生产或共享测试库
-- ==============================================================================
DO $$
DECLARE
v_db TEXT;
BEGIN
SELECT current_database() INTO v_db;
IF v_db NOT LIKE '%demo%' THEN
RAISE EXCEPTION '>>> [RESET-FATAL] 当前数据库为 %,非 Demo 专属库,安全拒绝重置!', v_db;
END IF;
RAISE NOTICE '>>> [RESET-START] 正在重置 % 的演示数据...', v_db;
END $$;
BEGIN;
-- 1. 逆序清理业务数据
DELETE FROM public.train_external_operation;
DELETE FROM public.train_external_resource_mapping;
DELETE FROM public.train_student_portrait;
DELETE FROM public.train_study_duration;
DELETE FROM public.train_student_score;
DELETE FROM public.train_score_item;
DELETE FROM public.train_student_checkin;
DELETE FROM public.train_lesson;
DELETE FROM public.train_dorm_auth;
DELETE FROM public.train_accommodation;
DELETE FROM public.train_class_report;
DELETE FROM public.train_enrollment;
DELETE FROM public.train_plan_course;
DELETE FROM public.train_class_plan;
DELETE FROM public.train_course_resource;
DELETE FROM public.train_resource;
DELETE FROM public.train_electronic_board;
DELETE FROM public.train_dormitory_info;
DELETE FROM public.train_training_site;
DELETE FROM public.train_classroom_info;
DELETE FROM public.train_course;
DELETE FROM public.train_student;
DELETE FROM public.train_teacher WHERE t_id <> 'T001'; -- 保留基线教师 T001
-- 2. 清理 Demo 用户关联
DELETE FROM public.sys_user_role WHERE user_id IN (10, 11, 12, 21, 22);
DELETE FROM public.sys_user WHERE user_id IN (10, 11, 12, 21, 22);
COMMIT;
-- 提示执行载入脚本
\echo '>>> [RESET-CLEANED] 已清空演示业务表。请重新依序执行 001 到 004 脚本完成黄金数据注入。'