用途:该资料用于在 TanStack DB 中接入 ElectricSQL,实现 Postgres 与客户端之间的实时数据同步。适合需要实时同步、乐观更新与事务确认的前端应用场景。
主要能力:通过 electricCollectionOptions 创建 Electric 集合,数据自动从数据库流式推送到客户端;支持 onInsert、onUpdate、onDelete 处理乐观变更,并可通过返回 txid 等待同步确认。提供 txid 匹配、自定义 awaitMatch 匹配、简单超时三种确认方式。还提供 awaitTxId、awaitMatch 等工具方法,以及 isChangeMessage、isControlMessage 辅助函数,并支持 createOptimisticAction 自定义操作。
使用方式:使用 createCollection 与 electricCollectionOptions 定义集合,配置 id、schema、getKey 与 shapeOptions.url(指向 Electric 代理)。后端在变更的同一事务中查询 txid,关键点是 pg_current_xact_id() 必须在与变更相同的事务内调用,否则 awaitTxId 会一直等待。Electric 应运行在代理之后,由服务端设置 table、where、columns 等 shape 参数以保证安全,客户端请求只透传协议参数。调试可设置 localStorage.debug = 'ts/db:electric'。
适用场景:实时协作类应用、需要数据库变更即时推送到界面的场景、需要乐观更新并在服务端确认后校准状态的场景。
限制与注意:资料提醒 shape 参数应在服务端配置而非客户端,以免安全风险;txid 查询位置错误会导致 awaitTxId 挂起;简单超时仅适用于原型验证。官方未在此资料中提供收费、价格或平台支持范围等信息。