diff --git a/deploy/migrations/m0021_llm_usage_drop_token_cols.json b/deploy/migrations/m0021_llm_usage_drop_token_cols.json new file mode 100644 index 0000000..ec5db37 --- /dev/null +++ b/deploy/migrations/m0021_llm_usage_drop_token_cols.json @@ -0,0 +1,13 @@ +{ + "id": "m0021", + "title": "llm_usage 删除 req_tokens/resp_tokens 冗余列(2026-09-10 用户定夺:usages JSON 是计费唯一事实源,token 计数在其中;两列与 usages 同源冗余且曾被截断病根牵连,统计查询改 JSON_EXTRACT)。dmig 幂等守卫:列已不存在自动跳过", + "backup_tables": ["llm_usage"], + "up": [ + {"op": "sql", "sql": "ALTER TABLE llm_usage DROP COLUMN req_tokens"}, + {"op": "sql", "sql": "ALTER TABLE llm_usage DROP COLUMN resp_tokens"} + ], + "down": [ + {"op": "sql", "sql": "ALTER TABLE llm_usage ADD COLUMN req_tokens INT NOT NULL DEFAULT 0 COMMENT '请求token(历史冗余列,计费看usages)'"}, + {"op": "sql", "sql": "ALTER TABLE llm_usage ADD COLUMN resp_tokens INT NOT NULL DEFAULT 0 COMMENT '响应token(历史冗余列,计费看usages)'"} + ] +} diff --git a/deploy/migrations/m0025_llm_usage_project_id.json b/deploy/migrations/m0025_llm_usage_project_id.json new file mode 100644 index 0000000..7034d2c --- /dev/null +++ b/deploy/migrations/m0025_llm_usage_project_id.json @@ -0,0 +1,27 @@ +{ + "id": "m0025", + "title": "llm_usage 加 project_id 列+索引(2026-09-10 用户定夺:按项目统计费用;非项目调用哨兵值'0'(NOT NULL DEFAULT,对齐org_id '0'平台约定);查询不传project_id=不区分项目。token绑定的project_id沿llm_bridge→token→推理端点→govern_settle全链透传落库)。dmig 幂等守卫:列/索引已存在自动跳过(create_tables.py 也会按 models 自动补列)", + "backup_tables": [ + "llm_usage" + ], + "up": [ + { + "op": "sql", + "sql": "ALTER TABLE llm_usage ADD COLUMN project_id VARCHAR(32) NOT NULL DEFAULT '0' COMMENT '项目ID(sd_projects.id;''0''=非项目调用,查询不传=不区分项目)' AFTER ppid" + }, + { + "op": "sql", + "sql": "CREATE INDEX idx_llm_usage_project ON llm_usage (project_id, created_at)" + } + ], + "down": [ + { + "op": "sql", + "sql": "DROP INDEX idx_llm_usage_project ON llm_usage" + }, + { + "op": "sql", + "sql": "ALTER TABLE llm_usage DROP COLUMN project_id" + } + ] +} \ No newline at end of file