diff --git a/src/main/java/com/wok/supportbot/config/DatabaseInitConfig.java b/src/main/java/com/wok/supportbot/config/DatabaseInitConfig.java index bc0d207..7bc388f 100644 --- a/src/main/java/com/wok/supportbot/config/DatabaseInitConfig.java +++ b/src/main/java/com/wok/supportbot/config/DatabaseInitConfig.java @@ -489,12 +489,7 @@ public class DatabaseInitConfig { INSERT INTO customer_service_role (role_key, name, description, prompt) VALUES (?, ?, ?, ?) ON CONFLICT (role_key) - DO UPDATE SET name = EXCLUDED.name, - description = EXCLUDED.description, - prompt = EXCLUDED.prompt, - enabled = true, - is_delete = false, - update_time = CURRENT_TIMESTAMP + DO NOTHING """, roleKey, name, description, prompt); } diff --git a/src/main/resources/init-database.sql b/src/main/resources/init-database.sql index 7230806..080bf31 100644 --- a/src/main/resources/init-database.sql +++ b/src/main/resources/init-database.sql @@ -261,6 +261,40 @@ COMMENT ON COLUMN conversation_session.role_id IS '归属角色ID'; COMMENT ON COLUMN conversation_session.create_time IS '创建时间'; COMMENT ON COLUMN conversation_session.update_time IS '更新时间'; +-- ============================================================ +-- 表 7.5: mcp_server_config — MCP Server 配置表 +-- ============================================================ +CREATE TABLE IF NOT EXISTS mcp_server_config ( + id BIGINT PRIMARY KEY, + name VARCHAR(100) NOT NULL, + transport_type VARCHAR(20) NOT NULL DEFAULT 'sse', + server_url VARCHAR(500), + command VARCHAR(500), + args VARCHAR(1000), + env_vars JSONB DEFAULT '{}' NOT NULL, + description VARCHAR(500), + is_active BOOLEAN DEFAULT TRUE NOT NULL, + create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + is_delete BOOLEAN NOT NULL DEFAULT FALSE +); + +CREATE INDEX IF NOT EXISTS idx_mcp_server_config_active ON mcp_server_config (is_active) WHERE is_delete = FALSE; + +COMMENT ON TABLE mcp_server_config IS 'MCP Server 配置表(管理外部 MCP Server 连接配置)'; +COMMENT ON COLUMN mcp_server_config.id IS '主键(雪花算法生成)'; +COMMENT ON COLUMN mcp_server_config.name IS '配置名称'; +COMMENT ON COLUMN mcp_server_config.transport_type IS '传输类型: stdio(标准输入输出) / sse(Server-Sent Events)'; +COMMENT ON COLUMN mcp_server_config.server_url IS 'SSE 模式的 MCP Server URL'; +COMMENT ON COLUMN mcp_server_config.command IS 'stdio 模式的启动命令'; +COMMENT ON COLUMN mcp_server_config.args IS 'stdio 模式的命令参数(多个用逗号分隔)'; +COMMENT ON COLUMN mcp_server_config.env_vars IS '环境变量(JSONB 键值对)'; +COMMENT ON COLUMN mcp_server_config.description IS '描述说明'; +COMMENT ON COLUMN mcp_server_config.is_active IS '是否启用'; +COMMENT ON COLUMN mcp_server_config.create_time IS '创建时间'; +COMMENT ON COLUMN mcp_server_config.update_time IS '更新时间'; +COMMENT ON COLUMN mcp_server_config.is_delete IS '逻辑删除: FALSE=正常 TRUE=已删除'; + -- ============================================================ -- 表 8: vector_store — 向量存储表 -- 注意: Spring AI PgVectorStore 配置了 initializeSchema(true),