SuperAPI AI 工具集

electric-new-feature

编程与开发

查看项目

更新于 10-15 21:37

技能介绍

用途:指导在 Electric 与 TanStack DB 中端到端新增一个同步功能,从 Postgres 表设计到前端实时查询与乐观写入。前置技能为 electric-shapes、electric-proxy-auth、electric-schema-shapes。

主要能力与流程:

  1. 本地启动:用 docker compose 启动 postgres:17-alpine(wal_level=logical)与 electricsql/electric:latest,开发环境可设 ELECTRIC_INSECURE=true,生产用 ELECTRIC_SECRET。
  2. 建表:创建 todos 表并执行 ALTER TABLE todos REPLICA IDENTITY FULL。
  3. 代理路由:转发 Electric 协议参数并注入服务端密钥,示例用 TanStack Start 的 /api/todos 路由,设置 table=todos,Cloud 场景加 source_id 与 secret。
  4. 定义 Zod 模式匹配表结构;Drizzle 可用 createSelectSchema。
  5. mutation 端点:写操作须在同一事务返回 { txid },示例用 pg_current_xact_id()。
  6. 创建 TanStack DB 集合:electricCollectionOptions 配置 schema、getKey、shapeOptions.url 与 parser(如 timestamptz),并实现 onInsert/onUpdate/onDelete 返回 txid。
  7. 实时查询:useLiveQuery 过滤、排序、限制。
  8. 乐观更新:collection.insert/update/delete。

限制与常见错误:Electric 同步路径绕过 TanStack DB schema,类型转换需在 shapeOptions.parser 处理,schema 只管 mutation 路径,两者都要;不要用旧 electrify() 双向同步 API,当前 Electric 为只读,写入走 API 加 txid 握手;表名须用查询参数 /v1/shape?table=todos,路径式 /v1/shape/todos 已在 v0.8.0 移除;shape_id 已更名为 handle。目标版本 @electric-sql/client v1.5.10、@tanstack/react-db latest。