v2.3更新

This commit is contained in:
2026-05-28 20:48:29 +08:00
parent ca53fdc349
commit 7dbe98ee02
15 changed files with 749 additions and 86 deletions

63
sql/upgrades/v1.6.sql Normal file
View 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;