From bd6b518aae61608ddc2d82b43ccc283dc95b9c54 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期三, 11 三月 2026 13:59:33 +0800 Subject: [PATCH] # --- src/main/resources/sql/20260311_add_mfa_columns_to_sys_user.sql | 78 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 78 insertions(+), 0 deletions(-) diff --git a/src/main/resources/sql/20260311_add_mfa_columns_to_sys_user.sql b/src/main/resources/sql/20260311_add_mfa_columns_to_sys_user.sql new file mode 100644 index 0000000..6e7eded --- /dev/null +++ b/src/main/resources/sql/20260311_add_mfa_columns_to_sys_user.sql @@ -0,0 +1,78 @@ +-- sys_user 澧炲姞 MFA 鐩稿叧瀛楁 +-- 鐢ㄩ�旓細鏀寔璐﹀彿绾у鍥犲瓙鐧诲綍鎺堟潈銆佺粦瀹氬拰鏍¢獙 +-- 閫傜敤鏁版嵁搴擄細MySQL + +SET @current_db := DATABASE(); + +SET @mfa_allow_exists := ( + SELECT COUNT(1) + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @current_db + AND TABLE_NAME = 'sys_user' + AND COLUMN_NAME = 'mfa_allow' +); + +SET @add_mfa_allow_sql := IF( + @mfa_allow_exists = 0, + 'ALTER TABLE sys_user ADD COLUMN mfa_allow INT NOT NULL DEFAULT 0 COMMENT ''鏄惁鍏佽浣跨敤MFA'' AFTER password', + 'SELECT ''column mfa_allow already exists'' ' +); +PREPARE stmt_mfa_allow FROM @add_mfa_allow_sql; +EXECUTE stmt_mfa_allow; +DEALLOCATE PREPARE stmt_mfa_allow; + +SET @mfa_enabled_exists := ( + SELECT COUNT(1) + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @current_db + AND TABLE_NAME = 'sys_user' + AND COLUMN_NAME = 'mfa_enabled' +); + +SET @add_mfa_enabled_sql := IF( + @mfa_enabled_exists = 0, + 'ALTER TABLE sys_user ADD COLUMN mfa_enabled INT NOT NULL DEFAULT 0 COMMENT ''鏄惁宸插惎鐢∕FA'' AFTER mfa_allow', + 'SELECT ''column mfa_enabled already exists'' ' +); +PREPARE stmt_mfa_enabled FROM @add_mfa_enabled_sql; +EXECUTE stmt_mfa_enabled; +DEALLOCATE PREPARE stmt_mfa_enabled; + +SET @mfa_secret_exists := ( + SELECT COUNT(1) + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @current_db + AND TABLE_NAME = 'sys_user' + AND COLUMN_NAME = 'mfa_secret' +); + +SET @add_mfa_secret_sql := IF( + @mfa_secret_exists = 0, + 'ALTER TABLE sys_user ADD COLUMN mfa_secret VARCHAR(128) NULL COMMENT ''MFA瀵嗛挜'' AFTER mfa_enabled', + 'SELECT ''column mfa_secret already exists'' ' +); +PREPARE stmt_mfa_secret FROM @add_mfa_secret_sql; +EXECUTE stmt_mfa_secret; +DEALLOCATE PREPARE stmt_mfa_secret; + +SET @mfa_bound_time_exists := ( + SELECT COUNT(1) + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @current_db + AND TABLE_NAME = 'sys_user' + AND COLUMN_NAME = 'mfa_bound_time' +); + +SET @add_mfa_bound_time_sql := IF( + @mfa_bound_time_exists = 0, + 'ALTER TABLE sys_user ADD COLUMN mfa_bound_time DATETIME NULL COMMENT ''MFA缁戝畾鏃堕棿'' AFTER mfa_secret', + 'SELECT ''column mfa_bound_time already exists'' ' +); +PREPARE stmt_mfa_bound_time FROM @add_mfa_bound_time_sql; +EXECUTE stmt_mfa_bound_time; +DEALLOCATE PREPARE stmt_mfa_bound_time; + +SHOW COLUMNS FROM sys_user LIKE 'mfa_allow'; +SHOW COLUMNS FROM sys_user LIKE 'mfa_enabled'; +SHOW COLUMNS FROM sys_user LIKE 'mfa_secret'; +SHOW COLUMNS FROM sys_user LIKE 'mfa_bound_time'; -- Gitblit v1.9.1