Files
team-api/migrations/000003_async_task_support.sql
T

60 lines
2.8 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- +goose Up
-- 异步任务支持:审计日志任务字段 + 用量日志任务字段 + 任务表request_id + 请求类型注释更新
-- 1. aud_request_logs 新增任务结果相关字段
ALTER TABLE aud_request_logs
ADD COLUMN IF NOT EXISTS task_id VARCHAR(64),
ADD COLUMN IF NOT EXISTS task_status VARCHAR(20),
ADD COLUMN IF NOT EXISTS task_result TEXT,
ADD COLUMN IF NOT EXISTS task_upstream_headers JSONB,
ADD COLUMN IF NOT EXISTS task_completed_at TIMESTAMPTZ;
CREATE INDEX IF NOT EXISTS idx_aud_request_logs_task_id
ON aud_request_logs (task_id) WHERE task_id IS NOT NULL;
COMMENT ON COLUMN aud_request_logs.task_id IS '异步任务公开ID(task_xxxxx),关联 tsk_model_tasks.public_task_id';
COMMENT ON COLUMN aud_request_logs.task_status IS '异步任务终态:SUCCESS / FAILURE';
COMMENT ON COLUMN aud_request_logs.task_result IS '异步任务完成时上游返回的原始响应体';
COMMENT ON COLUMN aud_request_logs.task_upstream_headers IS '异步任务完成时上游返回的响应头(仅审计级别为 full 时记录)';
COMMENT ON COLUMN aud_request_logs.task_completed_at IS '异步任务达到终态的时间';
-- 2. bil_usage_logs 新增 task_id 字段
ALTER TABLE bil_usage_logs
ADD COLUMN IF NOT EXISTS task_id VARCHAR(64);
CREATE INDEX IF NOT EXISTS idx_bil_usage_logs_task_id
ON bil_usage_logs (task_id) WHERE task_id IS NOT NULL;
COMMENT ON COLUMN bil_usage_logs.task_id IS '异步任务公开ID(task_xxxxx),关联 tsk_model_tasks.public_task_id,普通请求为空';
-- 3. bil_usage_logs.request_type 注释更新(新增 async=3)
COMMENT ON COLUMN bil_usage_logs.request_type IS '请求类型: 1=sync, 2=stream, 3=async, 4=websocket';
-- 4. tsk_model_tasks 新增 request_id 字段,存储任务提交时的原始请求 ID
ALTER TABLE tsk_model_tasks
ADD COLUMN IF NOT EXISTS request_id VARCHAR(64);
CREATE INDEX IF NOT EXISTS idx_tsk_model_tasks_request_id
ON tsk_model_tasks (request_id) WHERE request_id IS NOT NULL;
COMMENT ON COLUMN tsk_model_tasks.request_id IS '任务提交时的原始请求 ID(req_xxxxx),关联 aud_request_logs.request_id';
-- +goose Down
DROP INDEX IF EXISTS idx_tsk_model_tasks_request_id;
ALTER TABLE tsk_model_tasks
DROP COLUMN IF EXISTS request_id;
DROP INDEX IF EXISTS idx_aud_request_logs_task_id;
ALTER TABLE aud_request_logs
DROP COLUMN IF EXISTS task_id,
DROP COLUMN IF EXISTS task_status,
DROP COLUMN IF EXISTS task_result,
DROP COLUMN IF EXISTS task_upstream_headers,
DROP COLUMN IF EXISTS task_completed_at;
DROP INDEX IF EXISTS idx_bil_usage_logs_task_id;
ALTER TABLE bil_usage_logs
DROP COLUMN IF EXISTS task_id;
COMMENT ON COLUMN bil_usage_logs.request_type IS '请求类型: 1=sync, 2=stream, 3=websocket';