You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为WatermelonDB同步函数传递数据及解释migrationsEnabledAtVersion

WatermelonDB 同步功能使用说明

1. pullChanges、pushChanges 参数传递逻辑

你无需手动给这两个回调传参,所有入参都是 synchronize 方法从你传入的已初始化database实例里自动读取注入的,你只需要在回调里接收参数处理和后端的交互即可。

各参数具体含义:

  • pullChanges 自动注入的入参
    • lastPulledAt:本地库记录的上次同步成功的时间戳,首次同步时为0,代表全量拉取所有数据
    • schemaVersion:你项目中声明的WatermelonDB数据库schema版本号
    • migration:框架自动生成的迁移相关数据,用于服务端适配不同版本的客户端数据格式
      你需要将这三个参数传给后端拉取接口,后端返回符合规范的{ changes, timestamp }结构后直接return即可:changes是服务端在上次同步后产生的所有新增、修改、删除数据,timestamp是本次同步的服务端时间戳。框架收到返回值后会自动把变更写入本地库,同时更新本地的lastPulledAt记录。
  • pushChanges 自动注入的入参
    • changes:框架自动采集的上次同步之后本地产生的所有数据变更,格式已经符合WatermelonDB同步规范,直接序列化后传给后端即可
    • lastPulledAt:本地记录的上次同步时间,用于后端做并发冲突校验

同步触发方式

确保传入synchronize的database实例已经完成初始化,直接调用await mySync()就可以执行完整的推拉同步流程,不需要额外传任何参数。

2. migrationsEnabledAtVersion 配置含义

该配置用于开启同步流程中的迁移适配能力,配置值为你的服务端首次支持同步迁移功能的schema版本号。
当客户端的数据库schema版本大于等于这个配置值时,同步过程会自动携带迁移相关参数给服务端,方便服务端兼容不同版本的客户端数据格式。如果你的服务端还没有做过迁移适配,直接把这个值设置为和当前项目的schema版本一致即可。

内容的提问来源于stack exchange,提问作者Seun Akindele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:36:06