
如何写精华回答,获更多曝光?
发布
看文档是支持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()