v2.3更新
This commit is contained in:
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`;
|
||||
Reference in New Issue
Block a user