refactor(ai): 用知识库 V2 替换旧版 — 删除旧页面/API,菜单路径不变
- 删除旧版 AiKnowledgePage.tsx 和 api/ai/knowledge.ts - V2 页面接管 /health/ai-knowledge 路由(不再用 -v2 后缀) - 迁移 168 改为 UPDATE 旧菜单名称+component(而非新增菜单) - routeConfig 和 App.tsx 路由声明同步更新
This commit is contained in:
@@ -6,41 +6,17 @@ pub struct Migration;
|
||||
#[async_trait::async_trait]
|
||||
impl MigrationTrait for Migration {
|
||||
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
|
||||
// 安全插入:仅在 sys_menu 表存在且有 ai-knowledge 菜单时添加 V2 菜单
|
||||
// 将旧版 AI 知识库菜单更新为 V2 版本
|
||||
let sql = r#"
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'sys_menu') THEN
|
||||
INSERT INTO sys_menu (id, parent_id, name, path, icon, sort, permission, component, is_external, is_cached, status, visible, created_at, updated_at, deleted_at)
|
||||
SELECT
|
||||
gen_random_uuid(),
|
||||
parent_id,
|
||||
'知识库 V2',
|
||||
'/health/ai-knowledge-v2',
|
||||
'DatabaseOutlined',
|
||||
54,
|
||||
'ai.knowledge.list',
|
||||
'ai/KnowledgeV2Page',
|
||||
false,
|
||||
false,
|
||||
'active',
|
||||
true,
|
||||
now(),
|
||||
now(),
|
||||
NULL
|
||||
FROM sys_menu
|
||||
WHERE path = '/health/ai-knowledge' AND deleted_at IS NULL
|
||||
LIMIT 1
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
IF FOUND THEN
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.id, m.id
|
||||
FROM sys_role r, sys_menu m
|
||||
WHERE r.code = 'admin' AND r.deleted_at IS NULL
|
||||
AND m.path = '/health/ai-knowledge-v2' AND m.deleted_at IS NULL
|
||||
ON CONFLICT DO NOTHING;
|
||||
END IF;
|
||||
UPDATE sys_menu
|
||||
SET name = '知识库管理',
|
||||
icon = 'DatabaseOutlined',
|
||||
component = 'ai/KnowledgeV2Page',
|
||||
updated_at = now()
|
||||
WHERE path = '/health/ai-knowledge' AND deleted_at IS NULL;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql
|
||||
@@ -59,7 +35,12 @@ impl MigrationTrait for Migration {
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'sys_menu') THEN
|
||||
DELETE FROM sys_menu WHERE path = '/health/ai-knowledge-v2';
|
||||
UPDATE sys_menu
|
||||
SET name = 'AI 知识库',
|
||||
icon = 'BookOutlined',
|
||||
component = 'health/AiKnowledgePage',
|
||||
updated_at = now()
|
||||
WHERE path = '/health/ai-knowledge' AND deleted_at IS NULL;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql
|
||||
|
||||
Reference in New Issue
Block a user