怎么样与AGC云数据库端云同步

看文档是支持AGC云数据库端云同步的,可是不是到应该配置些什么,我直接设置分布表为在设备和云端之间分布式的数据库表,然后在初始化云服务后就手动触发云同步

最后报出日志"schedule":2,"code":3,"details":{},不知道是哪有问题,该怎么实现端云同步

async function configureDistributedTables(store: relationalStore.RdbStore): Promise<void> {
  try {
    (store as relationalStore.RdbStore).setDistributedTables(
      ["BILLING_TYPE","BILLING_FORMAT"],
      relationalStore.DistributedType.DISTRIBUTED_CLOUD,
      { autoSync: true }
    );
    LogUtil.info('分布式表设置成功');
  } catch (err) {
    LogUtil.error(`错误码:${err.code},错误信息:${err.message}`)
    throw new Error(`配置失败: ${err.message}`);
  }
}

export async function syncToCloud() {
  try {
    const store: relationalStore.RdbStore = getStore();

    // 配置网络策略(仅WiFi)
    await cloudData.setCloudStrategy(
      cloudData.StrategyType.NETWORK,
      [cloudData.NetWorkStrategy.WIFI]
    );

    // 手动触发端云同步
    await (store as relationalStore.RdbStore).cloudSync(
      relationalStore.SyncMode.SYNC_MODE_CLOUD_FIRST,
      ["BILLING_TYPE", "BILLING_FORMAT"], // 指定同步表
      (progressDetail) => {
        LogUtil.info(`同步进度: ${JSON.stringify(progressDetail)}`);
      }
    );
    LogUtil.info('同步成功');
  } catch (err) {
    LogUtil.error(`同步失败: ${err.code} - ${err.message}`);
  }
}

async function initCloudService() {
  try {
    let authProvider = auth.getAuthProvider();
    cloudCommon.init({
      region: cloudCommon.CloudRegion.CHINA,
      authProvider: authProvider,
      functionOptions:{timeout:10*1000},
      storageOptions: {mode:request.agent.Mode.BACKGROUND, network:request.agent.Network.ANY},
      databaseOptions: {
        traceId:`order_sync_$${Date.now()}_$${Math.random().toString(36).substr(2, 8)}`}
    });
    LogUtil.info(`云服务初始化成功`)
  }catch (err) {
    LogUtil.error('初始化失败')
  }
}

//然后进行手动同步
await syncToCloud()
鸿蒙开发
2025-03-14 10:16:08
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Aquinos
  1. 建议先执行初始化顺序:
await initCloudService();
await configureDistributedTables();
// 首次启动主动同步
await syncToCloud();
  1. 数据操作示例:
// 插入数据时自动触发同步
const insert: relationalStore.ValuesBucket = {
  "id": "1001",
  "amount": 199.9,
  "status": 1
};
await store.insert("BILLING_TYPE", insert);
分享
微博
QQ
微信
回复
2025-03-16 22:46:04
相关问题
一体化,本地数据库数据库
590浏览 • 1回复 待解决
一体化数据库权限问题
816浏览 • 1回复 已解决
数据库专属集群MyBase和PolarDB区别?
3994浏览 • 1回复 待解决
数据库Redis版提供怎样的服务?
3872浏览 • 1回复 待解决
服务器ECS自带MySQL数据库吗?
4351浏览 • 1回复 待解决
设备同步侧相关问题
10823浏览 • 3回复 待解决
多个数据库同步数据
2969浏览 • 1回复 待解决
数据库操作同步的方法
3057浏览 • 1回复 待解决
键值型数据库跨设备数据同步demo
2067浏览 • 1回复 待解决
OceanBase是什么数据库?
4690浏览 • 1回复 待解决
应用侧显示华为mqtt数据怎么做?
8482浏览 • 1回复 待解决
隐私中哪些数据不会上
1480浏览 • 1回复 待解决