From 12a3b1cbd31223fd770a361b75b7fb8dbf90b757 Mon Sep 17 00:00:00 2001 From: let5sne Date: Sun, 12 Jul 2026 01:56:08 +0800 Subject: [PATCH] fix(personal): preserve session schema requirements --- .../org/dromara/aihr/personal/PersonalSchemaContractTest.java | 3 +++ backend/script/sql/aihr_personal_knowledge_mysql8.sql | 2 ++ 2 files changed, 5 insertions(+) diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/personal/PersonalSchemaContractTest.java b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/personal/PersonalSchemaContractTest.java index 3f50f13f..616f6058 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/personal/PersonalSchemaContractTest.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/personal/PersonalSchemaContractTest.java @@ -71,6 +71,7 @@ class PersonalSchemaContractTest { "fulltext key `ft_personal_fragment_content` (`content`) with parser ngram"), "Personal fragments must use the MySQL ngram full-text parser"); + assertTrue(session.contains("`status` varchar(20) not null default 'active'")); assertTrue(session.contains("`default_scope` varchar(50) not null default 'personal'")); assertTrue(session.contains( "key `idx_personal_session_owner` (`tenant_id`, `owner_user_id`, `update_time`)")); @@ -82,6 +83,8 @@ class PersonalSchemaContractTest { assertTrue(message.contains("`input_tokens` int not null default 0")); assertTrue(message.contains("`output_tokens` int not null default 0")); assertTrue(message.contains("`latency_ms` bigint not null default 0")); + assertTrue(message.contains( + "key `idx_personal_message_session` (`session_id`, `create_time`)")); assertTrue(message.contains( "key `idx_personal_message_owner` (`tenant_id`, `owner_user_id`, `session_id`, `create_time`)")); diff --git a/backend/script/sql/aihr_personal_knowledge_mysql8.sql b/backend/script/sql/aihr_personal_knowledge_mysql8.sql index 463eccf3..81b2392b 100644 --- a/backend/script/sql/aihr_personal_knowledge_mysql8.sql +++ b/backend/script/sql/aihr_personal_knowledge_mysql8.sql @@ -69,6 +69,7 @@ CREATE TABLE IF NOT EXISTS `aihr_personal_chat_session` ( `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `owner_user_id` bigint NOT NULL COMMENT '会话所属用户ID', `title` varchar(200) NOT NULL COMMENT '会话标题', + `status` varchar(20) NOT NULL DEFAULT 'ACTIVE' COMMENT '会话状态', `default_scope` varchar(50) NOT NULL DEFAULT 'PERSONAL' COMMENT '默认问答范围', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', @@ -92,5 +93,6 @@ CREATE TABLE IF NOT EXISTS `aihr_personal_chat_message` ( `latency_ms` bigint NOT NULL DEFAULT 0 COMMENT '响应耗时毫秒', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`), + KEY `idx_personal_message_session` (`session_id`, `create_time`), KEY `idx_personal_message_owner` (`tenant_id`, `owner_user_id`, `session_id`, `create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='个人AI助理对话消息';