用途:该技能介绍 Electric 的 Shape Streaming,用 @electric-sql/client 的 ShapeStream 与 Shape 将 Postgres 表同步到客户端。
主要能力:支持通过 params 指定 table、where 过滤(含位置参数)、columns 选择列(必须包含主键)、replica: 'full' 获取更新前旧值;可用 columnMapper 与 snakeCamelMapper 在 snake_case 与 camelCase 间映射列名;支持 offset 与 handle 断点续传;onError 可返回 {} 重试或返回 { headers, params } 更新后重试。内置解析 bool、int2、int4、float4、float8、json、jsonb、int8(→BigInt),其他类型需自定义 parser。
用法:import { ShapeStream, Shape } from '@electric-sql/client';url 必须指向代理路由而非 Electric 直连地址;shape.subscribe 接收 rows,await shape.rows 等待首次同步。
限制与常见错误:onError 返回 void 会永久停止同步;columns 不含主键会返回 400;只设 offset 不设 handle 会抛 MissingShapeHandleError;WHERE 中不能用 now()、random()、count() 等非确定性函数;params 中 cursor、handle、live、offset、cache-buster 及 subset__* 为保留名;运行中的流不可修改选项,需新建 ShapeStream。目标版本 @electric-sql/client v1.5.10。