-- ============================================================ -- mcp_service 表升级脚本:添加 MCP 服务地址字段(唯一约束) -- 适用:已部署的 mcp_auth 库(幂等可重跑) -- ============================================================ -- 1. 添加 service_url 列(允许 NULL,便于已有数据平滑过渡) ALTER TABLE mcp_service ADD COLUMN IF NOT EXISTS service_url VARCHAR(255); -- 2. 为已有记录回填 service_url(按服务名推断默认地址,可按实际环境修改) UPDATE mcp_service SET service_url = 'http://10.100.154.100:' || (CASE service_name WHEN 'erp' THEN '8001' WHEN 'crm' THEN '8002' ELSE '8000' END) || '/mcp' WHERE service_url IS NULL; -- 3. 设置为 NOT NULL ALTER TABLE mcp_service ALTER COLUMN service_url SET NOT NULL; -- 4. 添加唯一约束(幂等:先检查约束是否存在) DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'uk_mcp_service_url' AND conrelid = 'mcp_service'::regclass ) THEN ALTER TABLE mcp_service ADD CONSTRAINT uk_mcp_service_url UNIQUE (service_url); END IF; END $$;