v2.3更新
This commit is contained in:
@@ -232,8 +232,8 @@ INSERT IGNORE INTO `subjects` (`subject_name`, `subject_code`, `sort_order`) VAL
|
||||
|
||||
-- 初始化系统版本号
|
||||
INSERT INTO `system_settings` (`setting_key`, `setting_value`)
|
||||
VALUES ('db_version', '2.2')
|
||||
ON DUPLICATE KEY UPDATE `setting_value` = '2.2';
|
||||
VALUES ('db_version', '2.3')
|
||||
ON DUPLICATE KEY UPDATE `setting_value` = '2.3';
|
||||
|
||||
-- 控制台输出初始化结果(含版本号)
|
||||
SELECT CONCAT('数据库初始化完成!版本: v', (SELECT setting_value FROM system_settings WHERE setting_key = 'db_version')) AS message;
|
||||
|
||||
106
sql/upgrades/v1.0.sql
Normal file
106
sql/upgrades/v1.0.sql
Normal file
@@ -0,0 +1,106 @@
|
||||
-- ===========================================
|
||||
-- 班级操行分管理系统 - v1.0 初始数据库结构
|
||||
-- 字符集: utf8mb4
|
||||
--
|
||||
-- 说明: 系统初始版本,创建核心表结构。
|
||||
-- 包含: semesters, subjects, students, users,
|
||||
-- admin_roles, conduct_records, attendance_records
|
||||
--
|
||||
-- 兼容性: 使用 IF NOT EXISTS 实现幂等,phpMyAdmin 可直接执行
|
||||
-- ===========================================
|
||||
|
||||
-- 学期表
|
||||
CREATE TABLE IF NOT EXISTS `semesters` (
|
||||
`semester_id` INT PRIMARY KEY AUTO_INCREMENT,
|
||||
`semester_name` VARCHAR(100) NOT NULL COMMENT '学期名称',
|
||||
`start_date` DATE DEFAULT NULL COMMENT '学期开始日期',
|
||||
`end_date` DATE DEFAULT NULL COMMENT '学期结束日期',
|
||||
`is_active` TINYINT DEFAULT 0 COMMENT '是否为当前活跃学期',
|
||||
`is_archived` TINYINT DEFAULT 0 COMMENT '是否已归档',
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 科目表
|
||||
CREATE TABLE IF NOT EXISTS `subjects` (
|
||||
`subject_id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '科目ID',
|
||||
`subject_name` VARCHAR(50) NOT NULL COMMENT '科目名称',
|
||||
`is_active` TINYINT DEFAULT 1 COMMENT '是否启用',
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY `uk_subject_name` (`subject_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 学生表
|
||||
CREATE TABLE IF NOT EXISTS `students` (
|
||||
`student_id` INT PRIMARY KEY AUTO_INCREMENT,
|
||||
`student_no` VARCHAR(20) NOT NULL UNIQUE,
|
||||
`name` VARCHAR(50) NOT NULL,
|
||||
`total_points` INT DEFAULT 60,
|
||||
`parent_phone` VARCHAR(20) DEFAULT NULL,
|
||||
`status` TINYINT DEFAULT 1,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 用户表
|
||||
CREATE TABLE IF NOT EXISTS `users` (
|
||||
`user_id` INT PRIMARY KEY AUTO_INCREMENT,
|
||||
`username` VARCHAR(50) NOT NULL UNIQUE,
|
||||
`password_hash` VARCHAR(64) NOT NULL,
|
||||
`real_name` VARCHAR(50) NOT NULL,
|
||||
`user_type` ENUM('student', 'parent', 'admin') NOT NULL,
|
||||
`student_id` INT DEFAULT NULL,
|
||||
`status` TINYINT DEFAULT 1,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`student_id`) REFERENCES `students`(`student_id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 管理员角色表
|
||||
CREATE TABLE IF NOT EXISTS `admin_roles` (
|
||||
`admin_role_id` INT PRIMARY KEY AUTO_INCREMENT,
|
||||
`user_id` INT NOT NULL,
|
||||
`role_type` ENUM('班主任', '班长', '学习委员', '考勤委员', '劳动委员', '志愿委员') NOT NULL,
|
||||
`subject_id` INT DEFAULT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`subject_id`) REFERENCES `subjects`(`subject_id`) ON DELETE CASCADE,
|
||||
UNIQUE KEY `uk_user_subject` (`user_id`, `subject_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 操行分记录表
|
||||
CREATE TABLE IF NOT EXISTS `conduct_records` (
|
||||
`record_id` BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
`student_id` INT NOT NULL,
|
||||
`points_change` INT NOT NULL,
|
||||
`reason` VARCHAR(255) NOT NULL,
|
||||
`recorder_id` INT NOT NULL,
|
||||
`recorder_name` VARCHAR(50) DEFAULT NULL,
|
||||
`related_id` INT DEFAULT NULL,
|
||||
`is_revoked` TINYINT DEFAULT 0,
|
||||
`revoked_by` INT DEFAULT NULL,
|
||||
`revoked_at` DATETIME DEFAULT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`student_id`) REFERENCES `students`(`student_id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`recorder_id`) REFERENCES `users`(`user_id`),
|
||||
FOREIGN KEY (`revoked_by`) REFERENCES `users`(`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 考勤记录表
|
||||
CREATE TABLE IF NOT EXISTS `attendance_records` (
|
||||
`attendance_id` INT PRIMARY KEY AUTO_INCREMENT,
|
||||
`student_id` INT NOT NULL,
|
||||
`date` DATE NOT NULL,
|
||||
`slot` ENUM('morning', 'afternoon', 'evening') DEFAULT 'morning' COMMENT '考勤时段',
|
||||
`status` ENUM('present', 'absent', 'late', 'leave') DEFAULT 'present',
|
||||
`reason` VARCHAR(255) DEFAULT NULL,
|
||||
`recorder_id` INT NOT NULL,
|
||||
`deduction_applied` TINYINT DEFAULT 0,
|
||||
`deduction_record_id` BIGINT DEFAULT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`student_id`) REFERENCES `students`(`student_id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`recorder_id`) REFERENCES `users`(`user_id`),
|
||||
FOREIGN KEY (`deduction_record_id`) REFERENCES `conduct_records`(`record_id`) ON DELETE SET NULL,
|
||||
UNIQUE KEY `uk_student_date_slot` (`student_id`, `date`, `slot`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 插入初始科目
|
||||
INSERT IGNORE INTO `subjects` (`subject_name`) VALUES ('语文'), ('数学'), ('英语');
|
||||
97
sql/upgrades/v1.1.sql
Normal file
97
sql/upgrades/v1.1.sql
Normal file
@@ -0,0 +1,97 @@
|
||||
-- ===========================================
|
||||
-- 班级操行分管理系统 - v1.0 → v1.1 升级脚本
|
||||
-- 字符集: utf8mb4
|
||||
--
|
||||
-- 变更内容:
|
||||
-- 1. users 表添加 need_change_password 列
|
||||
-- 2. users 表添加 last_login_time 列
|
||||
-- 3. users 表添加 last_login_ip 列
|
||||
-- 4. users 表 password_hash 字段扩展至 VARCHAR(255)
|
||||
--
|
||||
-- 兼容性: 使用存储过程实现幂等,phpMyAdmin 可直接执行
|
||||
-- ===========================================
|
||||
|
||||
-- 升级步骤 1: users 添加 need_change_password 列
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE `upgrade_step`()
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'users'
|
||||
AND COLUMN_NAME = 'need_change_password'
|
||||
) THEN
|
||||
ALTER TABLE `users`
|
||||
ADD COLUMN `need_change_password` TINYINT DEFAULT 1
|
||||
AFTER `status`;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
CALL `upgrade_step`();
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
|
||||
-- 升级步骤 2: users 添加 last_login_time 列
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE `upgrade_step`()
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'users'
|
||||
AND COLUMN_NAME = 'last_login_time'
|
||||
) THEN
|
||||
ALTER TABLE `users`
|
||||
ADD COLUMN `last_login_time` DATETIME DEFAULT NULL
|
||||
AFTER `need_change_password`;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
CALL `upgrade_step`();
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
|
||||
-- 升级步骤 3: users 添加 last_login_ip 列
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE `upgrade_step`()
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'users'
|
||||
AND COLUMN_NAME = 'last_login_ip'
|
||||
) THEN
|
||||
ALTER TABLE `users`
|
||||
ADD COLUMN `last_login_ip` VARCHAR(45) DEFAULT NULL
|
||||
AFTER `last_login_time`;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
CALL `upgrade_step`();
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
|
||||
-- 升级步骤 4: password_hash 字段扩展至 VARCHAR(255)
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE `upgrade_step`()
|
||||
BEGIN
|
||||
DECLARE v_col_len INT;
|
||||
SELECT CHARACTER_MAXIMUM_LENGTH INTO v_col_len
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'users'
|
||||
AND COLUMN_NAME = 'password_hash';
|
||||
|
||||
IF v_col_len < 255 THEN
|
||||
ALTER TABLE `users`
|
||||
MODIFY COLUMN `password_hash` VARCHAR(255) NOT NULL;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
CALL `upgrade_step`();
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
41
sql/upgrades/v1.2.sql
Normal file
41
sql/upgrades/v1.2.sql
Normal file
@@ -0,0 +1,41 @@
|
||||
-- ===========================================
|
||||
-- 班级操行分管理系统 - v1.1 → v1.2 升级脚本
|
||||
-- 字符集: utf8mb4
|
||||
--
|
||||
-- 变更内容:
|
||||
-- 1. 创建 assignments(作业表)
|
||||
-- 2. 创建 homework_submissions(作业提交记录表)
|
||||
--
|
||||
-- 兼容性: 使用 IF NOT EXISTS 实现幂等,phpMyAdmin 可直接执行
|
||||
-- ===========================================
|
||||
|
||||
-- 升级步骤 1: 创建作业表
|
||||
CREATE TABLE IF NOT EXISTS `assignments` (
|
||||
`assignment_id` INT PRIMARY KEY AUTO_INCREMENT,
|
||||
`subject_id` INT NOT NULL,
|
||||
`title` VARCHAR(100) NOT NULL,
|
||||
`description` TEXT,
|
||||
`deadline` DATE NOT NULL,
|
||||
`created_by` INT NOT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`subject_id`) REFERENCES `subjects`(`subject_id`),
|
||||
FOREIGN KEY (`created_by`) REFERENCES `users`(`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 升级步骤 2: 创建作业提交记录表
|
||||
CREATE TABLE IF NOT EXISTS `homework_submissions` (
|
||||
`submission_id` INT PRIMARY KEY AUTO_INCREMENT,
|
||||
`assignment_id` INT NOT NULL,
|
||||
`student_id` INT NOT NULL,
|
||||
`status` ENUM('submitted', 'not_submitted', 'late') DEFAULT 'not_submitted',
|
||||
`submit_time` DATETIME DEFAULT NULL,
|
||||
`comments` TEXT,
|
||||
`deduction_applied` TINYINT DEFAULT 0,
|
||||
`deduction_record_id` BIGINT DEFAULT NULL,
|
||||
`updated_by` INT DEFAULT NULL,
|
||||
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`assignment_id`) REFERENCES `assignments`(`assignment_id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`student_id`) REFERENCES `students`(`student_id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`deduction_record_id`) REFERENCES `conduct_records`(`record_id`) ON DELETE SET NULL,
|
||||
UNIQUE KEY `uk_assignment_student` (`assignment_id`, `student_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
22
sql/upgrades/v1.3.sql
Normal file
22
sql/upgrades/v1.3.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
-- ===========================================
|
||||
-- 班级操行分管理系统 - v1.2 → v1.3 升级脚本
|
||||
-- 字符集: utf8mb4
|
||||
--
|
||||
-- 变更内容:
|
||||
-- 1. 创建 operation_logs(操作日志表)
|
||||
--
|
||||
-- 兼容性: 使用 IF NOT EXISTS 实现幂等,phpMyAdmin 可直接执行
|
||||
-- ===========================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `operation_logs` (
|
||||
`log_id` BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
`operator_id` INT NOT NULL,
|
||||
`operator_name` VARCHAR(50) DEFAULT NULL,
|
||||
`operator_role` VARCHAR(50) DEFAULT NULL,
|
||||
`operation_type` VARCHAR(50) NOT NULL,
|
||||
`target_type` VARCHAR(50) DEFAULT NULL,
|
||||
`target_id` INT DEFAULT NULL,
|
||||
`details` TEXT,
|
||||
`ip_address` VARCHAR(45) DEFAULT NULL,
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
19
sql/upgrades/v1.4.sql
Normal file
19
sql/upgrades/v1.4.sql
Normal file
@@ -0,0 +1,19 @@
|
||||
-- ===========================================
|
||||
-- 班级操行分管理系统 - v1.3 → v1.4 升级脚本
|
||||
-- 字符集: utf8mb4
|
||||
--
|
||||
-- 变更内容:
|
||||
-- 1. 创建 login_logs(登录日志表)
|
||||
--
|
||||
-- 兼容性: 使用 IF NOT EXISTS 实现幂等,phpMyAdmin 可直接执行
|
||||
-- ===========================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `login_logs` (
|
||||
`log_id` BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
`username` VARCHAR(50) NOT NULL,
|
||||
`login_result` TINYINT NOT NULL,
|
||||
`fail_reason` VARCHAR(100) DEFAULT NULL,
|
||||
`ip_address` VARCHAR(45) DEFAULT NULL,
|
||||
`user_agent` VARCHAR(255) DEFAULT NULL,
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
30
sql/upgrades/v1.5.sql
Normal file
30
sql/upgrades/v1.5.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- ===========================================
|
||||
-- 班级操行分管理系统 - v1.4 → v1.5 升级脚本
|
||||
-- 字符集: utf8mb4
|
||||
--
|
||||
-- 变更内容:
|
||||
-- 1. 创建 semester_archives(学期归档快照表)
|
||||
--
|
||||
-- 兼容性: 使用 IF NOT EXISTS 实现幂等,phpMyAdmin 可直接执行
|
||||
-- ===========================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `semester_archives` (
|
||||
`archive_id` INT PRIMARY KEY AUTO_INCREMENT,
|
||||
`semester_id` INT NOT NULL,
|
||||
`student_id` INT NOT NULL,
|
||||
`student_no` VARCHAR(20) NOT NULL,
|
||||
`student_name` VARCHAR(50) NOT NULL,
|
||||
`final_points` INT NOT NULL COMMENT '学期最终操行分',
|
||||
`rank_position` INT DEFAULT NULL COMMENT '排名',
|
||||
`total_students` INT DEFAULT NULL COMMENT '班级总人数',
|
||||
`attendance_present` INT DEFAULT 0 COMMENT '出勤次数',
|
||||
`attendance_absent` INT DEFAULT 0 COMMENT '缺勤次数',
|
||||
`attendance_late` INT DEFAULT 0 COMMENT '迟到次数',
|
||||
`attendance_leave` INT DEFAULT 0 COMMENT '请假次数',
|
||||
`homework_submitted` INT DEFAULT 0 COMMENT '已交作业数',
|
||||
`homework_not_submitted` INT DEFAULT 0 COMMENT '未交作业数',
|
||||
`homework_late` INT DEFAULT 0 COMMENT '迟交作业数',
|
||||
`archived_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`semester_id`) REFERENCES `semesters`(`semester_id`),
|
||||
FOREIGN KEY (`student_id`) REFERENCES `students`(`student_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
63
sql/upgrades/v1.6.sql
Normal file
63
sql/upgrades/v1.6.sql
Normal file
@@ -0,0 +1,63 @@
|
||||
-- ===========================================
|
||||
-- 班级操行分管理系统 - v1.5 → v1.6 升级脚本
|
||||
-- 字符集: utf8mb4
|
||||
--
|
||||
-- 变更内容:
|
||||
-- 1. subjects 表添加 subject_code 列(科目代码)
|
||||
-- 2. subjects 表添加 sort_order 列(排序序号)
|
||||
-- 3. 更新已有科目的 subject_code
|
||||
--
|
||||
-- 兼容性: 使用存储过程实现幂等,phpMyAdmin 可直接执行
|
||||
-- ===========================================
|
||||
|
||||
-- 升级步骤 1: subjects 添加 subject_code 列
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE `upgrade_step`()
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'subjects'
|
||||
AND COLUMN_NAME = 'subject_code'
|
||||
) THEN
|
||||
ALTER TABLE `subjects`
|
||||
ADD COLUMN `subject_code` VARCHAR(20) DEFAULT NULL COMMENT '科目代码'
|
||||
AFTER `subject_name`;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
CALL `upgrade_step`();
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
|
||||
-- 升级步骤 2: subjects 添加 sort_order 列
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE `upgrade_step`()
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'subjects'
|
||||
AND COLUMN_NAME = 'sort_order'
|
||||
) THEN
|
||||
ALTER TABLE `subjects`
|
||||
ADD COLUMN `sort_order` INT DEFAULT 0 COMMENT '排序序号'
|
||||
AFTER `is_active`;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
CALL `upgrade_step`();
|
||||
DROP PROCEDURE IF EXISTS `upgrade_step`;
|
||||
|
||||
-- 升级步骤 3: 更新已有科目的 subject_code
|
||||
UPDATE `subjects` SET `subject_code` = 'CHI' WHERE `subject_name` = '语文' AND (`subject_code` IS NULL OR `subject_code` = '');
|
||||
UPDATE `subjects` SET `subject_code` = 'MATH' WHERE `subject_name` = '数学' AND (`subject_code` IS NULL OR `subject_code` = '');
|
||||
UPDATE `subjects` SET `subject_code` = 'ENG' WHERE `subject_name` = '英语' AND (`subject_code` IS NULL OR `subject_code` = '');
|
||||
|
||||
-- 升级步骤 4: 设置默认排序
|
||||
UPDATE `subjects` SET `sort_order` = 1 WHERE `subject_name` = '语文' AND `sort_order` = 0;
|
||||
UPDATE `subjects` SET `sort_order` = 2 WHERE `subject_name` = '数学' AND `sort_order` = 0;
|
||||
UPDATE `subjects` SET `sort_order` = 3 WHERE `subject_name` = '英语' AND `sort_order` = 0;
|
||||
11
sql/upgrades/v2.3.sql
Normal file
11
sql/upgrades/v2.3.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- ===========================================
|
||||
-- 班级操行分管理系统 - v2.2 → v2.3 升级脚本
|
||||
-- 字符集: utf8mb4
|
||||
--
|
||||
-- 说明: v2.3 为升级系统优化版本,无数据库 schema 变更。
|
||||
-- 主要变更:
|
||||
-- 1. 升级系统全面重构(错误处理、SQL 解析、XSS 防护)
|
||||
-- 2. 新增升级验证 + 自动重试 + 失败回滚机制
|
||||
-- 3. 补全 v1.0-v1.6 增量升级脚本
|
||||
-- 4. 修复 DELIMITER SQL 执行问题
|
||||
-- ===========================================
|
||||
Reference in New Issue
Block a user