求助sub2api问题
- 内容介绍
- 文章标签
- 相关推荐
如题,我部署了sub2api
然后我现在遇到了问题,查看log发现这一个问题
把全部log送到了ai里面,他给我回答postgresql连接池满了,数据库 Schema 不匹配
而且还有上下文过高的问题
ERROR service/ops_aggregation_service.go:212 [OpsAggregation][hourly] upsert failed (2026-04-02T05:00:00Z..2026-04-02T06:00:00Z): pq: column "duration_avg_ms" of relation "ops_metrics_hourly" does not exist {"service": "sub2api", "env": "production", "component": "service.ops_aggregation", "legacy_printf": true}
ERROR stdlog handler/ops_error_logger.go:176 [Ops] RecordErrorBatch single insert failed: pq: column "upstream_errors" of relation "ops_error_logs" does not exist {"service": "sub2api", "env": "production", "legacy_stdlog": true}
ERROR service/ops_alert_evaluator_service.go:189 [OpsAlertEvaluator] list rules failed: pq: column "notify_email" does not exist {"service": "sub2api", "env": "production", "component": "service.ops_alert_evaluator", "legacy_printf": true}
ERROR service/openai_gateway_service.go:3028 OpenAI upstream error 413 (account=150 platform=openai type=apikey): {"error":{"message":"依然上下文过高,请去站内-API密钥-使用密钥。复制最新的配置进行替换即可解决","type":"upstream_error"}} {"service": "sub2api", "env": "production", "component": "service.openai_gateway", "legacy_printf": true}
提前谢过各位佬友了
网友解答:--【壹】--:
佬,向问一下这个订阅分组在哪里创建?
image1629×1173 81.6 KB
--【贰】--:
根据这个信息 account=150 platform=openai type=apikey 去前端 /admin/accounts 这个路由页面,找到 数据库表 accounts 里面 id=150 这个账号,去这个账号对应的上游服务器登录进去,重新获取新的 token,理论上更新一下就行了,也有可能是你的请求的 body 太大了,上游模型的上下文不足
假设你是 docker-compose 部署的,下面的方式可以获取到对应的 上游账号信息
docker exec -it sub2api-postgres psql -U sub2api -d sub2api
SELECT * FROM accounts WHERE id = 150;
--【叁】--:
佬,可以讲一下那个413的问题吗
--【肆】--:
okok,感谢佬
--【伍】--:
看报错应该是你之前部署过 sub2api 然后最近升级了,但是数据库里面的表/字段还是旧的
解决方式三种
- 还是用旧版本,不升级
- 做好数据备份后,删除所有的数据,重新安装,
rm -rf data/ postgres_data/ redis_data/ - 根据缺失的字段,主动执行 sql 补全,比如
https://github.com/Wei-Shaw/sub2api/tree/main/backend/migrations
总结日志里面的缺失字段有
- 表
ops_metrics_hourly: 字段duration_avg_ms - 表
ops_error_logs: 字段upstream_errors - 表
ops_alert_evaluator: 字段notify_email
注意: 一定要保存好自己的数据,比如 AI 平台账号和 Cookie
如题,我部署了sub2api
然后我现在遇到了问题,查看log发现这一个问题
把全部log送到了ai里面,他给我回答postgresql连接池满了,数据库 Schema 不匹配
而且还有上下文过高的问题
ERROR service/ops_aggregation_service.go:212 [OpsAggregation][hourly] upsert failed (2026-04-02T05:00:00Z..2026-04-02T06:00:00Z): pq: column "duration_avg_ms" of relation "ops_metrics_hourly" does not exist {"service": "sub2api", "env": "production", "component": "service.ops_aggregation", "legacy_printf": true}
ERROR stdlog handler/ops_error_logger.go:176 [Ops] RecordErrorBatch single insert failed: pq: column "upstream_errors" of relation "ops_error_logs" does not exist {"service": "sub2api", "env": "production", "legacy_stdlog": true}
ERROR service/ops_alert_evaluator_service.go:189 [OpsAlertEvaluator] list rules failed: pq: column "notify_email" does not exist {"service": "sub2api", "env": "production", "component": "service.ops_alert_evaluator", "legacy_printf": true}
ERROR service/openai_gateway_service.go:3028 OpenAI upstream error 413 (account=150 platform=openai type=apikey): {"error":{"message":"依然上下文过高,请去站内-API密钥-使用密钥。复制最新的配置进行替换即可解决","type":"upstream_error"}} {"service": "sub2api", "env": "production", "component": "service.openai_gateway", "legacy_printf": true}
提前谢过各位佬友了
网友解答:--【壹】--:
佬,向问一下这个订阅分组在哪里创建?
image1629×1173 81.6 KB
--【贰】--:
根据这个信息 account=150 platform=openai type=apikey 去前端 /admin/accounts 这个路由页面,找到 数据库表 accounts 里面 id=150 这个账号,去这个账号对应的上游服务器登录进去,重新获取新的 token,理论上更新一下就行了,也有可能是你的请求的 body 太大了,上游模型的上下文不足
假设你是 docker-compose 部署的,下面的方式可以获取到对应的 上游账号信息
docker exec -it sub2api-postgres psql -U sub2api -d sub2api
SELECT * FROM accounts WHERE id = 150;
--【叁】--:
佬,可以讲一下那个413的问题吗
--【肆】--:
okok,感谢佬
--【伍】--:
看报错应该是你之前部署过 sub2api 然后最近升级了,但是数据库里面的表/字段还是旧的
解决方式三种
- 还是用旧版本,不升级
- 做好数据备份后,删除所有的数据,重新安装,
rm -rf data/ postgres_data/ redis_data/ - 根据缺失的字段,主动执行 sql 补全,比如
https://github.com/Wei-Shaw/sub2api/tree/main/backend/migrations
总结日志里面的缺失字段有
- 表
ops_metrics_hourly: 字段duration_avg_ms - 表
ops_error_logs: 字段upstream_errors - 表
ops_alert_evaluator: 字段notify_email
注意: 一定要保存好自己的数据,比如 AI 平台账号和 Cookie

