用途:该技能用于把 TanStack DB 与 ElectricSQL 集成,实现 Postgres 数据实时同步到客户端,并支持乐观更新通过事务 ID(txid)匹配确认。
主要能力:通过 electricCollectionOptions 创建集合,配置 shapeOptions.url 指向 Electric 代理;在 onInsert、onUpdate、onDelete 中调用后端 API 并返回 txid,等待同步确认;支持自定义匹配函数 awaitMatch、超时等待 awaitTxId,以及 isChangeMessage、isControlMessage 辅助判断。
使用方式:集合创建示例使用 createCollection 与 electricCollectionOptions,需提供 id、schema、getKey 和 shapeOptions。后端需在同一事务内执行 SELECT pg_current_xact_id()::xid::text as txid 获取 txid,再执行写入。代理应服务端配置 shape 参数(table、where、columns),并透传 ELECTRIC_PROTOCOL_QUERY_PARAMS。调试可设置 localStorage.debug = 'ts/db:electric'。
适用场景:需要实时 Postgres 同步、乐观变更确认、shape 过滤与安全代理的 TanStack DB 应用。
限制:资料未提供具体版本、收费、平台支持范围;txid 必须在同一事务内查询,否则 awaitTxId 会挂起;shape 参数应在服务端配置而非客户端。