auto: sync OpenClaw config 2026-09-16 22:13
This commit is contained in:
+39
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: "fitness-db-access"
|
||||
description: "读写 fitness 库健康数据时用:中文写入须前缀 SET NAMES utf8mb4(否则报错 1265 截断),斤转 kg,写后回读校验"
|
||||
status: proposal
|
||||
version: "v1"
|
||||
date: "2026-09-16T12:32:53.487Z"
|
||||
---
|
||||
|
||||
# Fitness 库读写
|
||||
|
||||
## 连接方式
|
||||
一律用 `~/.openclaw/scripts/db-conn.sh fitness --sql "<SQL>"`(固定账号 `agent_fitness`)。
|
||||
禁止 root、禁止 docker exec 直连、禁止访问其他 agent 的库。建表结构与字段以 AGENTS.md 为准,勿在此重复。
|
||||
|
||||
## 含中文的 SQL 必须以 `SET NAMES utf8mb4;` 开头
|
||||
脚本内的 mysql 客户端连接字符集默认是 latin1(实测 `character_set_client` / `character_set_results` 均为 latin1)。因此:
|
||||
|
||||
- 写中文到 enum/文本列会直接失败:`ERROR 1265 (01000) ... Data truncated for column 'severity' at row 1`
|
||||
- 读中文会返回乱码(如 enum 显示成 `'?'`)
|
||||
|
||||
每条含中文的 SQL 都加前缀:
|
||||
|
||||
~/.openclaw/scripts/db-conn.sh fitness --sql "SET NAMES utf8mb4; INSERT INTO health_status_logs (...) VALUES (...)"
|
||||
|
||||
## 写入后回读
|
||||
`--sql` 以 `-N -B` 执行(制表符分隔、无表头),INSERT 无输出即成功。
|
||||
随后同条件 SELECT 回读,确认中文无乱码、字段无截断,再报完成。
|
||||
|
||||
## 体重单位换算
|
||||
用户口述单位是「斤」,而 `body_records.weight` 存 kg(decimal(5,1)):kg = 斤 ÷ 2。
|
||||
例:132.4 斤 → 66.2。
|
||||
|
||||
## 身体尺寸 / 尺码卡查询
|
||||
尺寸单一真相来源是 `body_measurements`(字段清单见 AGENTS.md,勿在此重复)。取最新一条即"尺码卡":
|
||||
|
||||
~/.openclaw/scripts/db-conn.sh fitness --sql "SET NAMES utf8mb4; SELECT measure_date, height, shoulder_width, chest, waist, hip, arm_length, inseam, note FROM body_measurements WHERE user_id='yangxuan' ORDER BY measure_date DESC LIMIT 1;"
|
||||
|
||||
输出身高/肩宽/胸围/腰围/臀围/裤长,**必须标注腰围测法**:`waist` 是肚脐水平实测,与裤装标注腰围尺码可能差 2-4cm,买裤时以版型说明为准。
|
||||
尺寸是无单位的 cm 数(与体重不同,**不做斤/公斤换算**),不要套用上面的体重换算。
|
||||
Reference in New Issue
Block a user