中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
看文档是支持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()
微信扫码分享