You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Trae AI c17d882e61 修改字段名:jiandaoyun_record_id 改为 dataid 2 months ago
src 修改字段名:jiandaoyun_record_id 改为 dataid 2 months ago
.gitignore 实现自动同步功能:数据库新增数据后简道云自动同步更新 3 months ago
README.md 实现自动同步功能:数据库新增数据后简道云自动同步更新 3 months ago
check-specific-user.js 修改字段名:jiandaoyun_record_id 改为 dataid 2 months ago
index.js 修复简道云重复新增数据问题:使用记录ID跟踪数据 3 months ago
package-lock.json 实现自动同步功能:数据库新增数据后简道云自动同步更新 3 months ago
package.json 实现自动同步功能:数据库新增数据后简道云自动同步更新 3 months ago
reset-sync-status.js 删除测试脚本,保留关键文件代码 2 months ago

README.md

数据同步服务

简介

这是一个用于将数据库中的用户数据同步到简道云表单的服务。

功能特性

  1. 数据同步:将数据库中的用户数据同步到简道云表单
  2. 重复数据检查:跳过简道云表单中已存在的电话号码数据
  3. 增量同步:只同步新增/未同步的数据(默认启用)
  4. 全量同步:同步所有数据
  5. 自动同步:定期自动检查并同步数据库中的新增数据

配置选项

数据库配置

src/config/config.js 中配置数据库连接信息:

db: {
  host: '数据库主机地址',
  port: 数据库端口号,
  user: '数据库用户名',
  password: '数据库密码',
  database: '数据库名称'
}

同步配置

src/config/config.js 中配置同步选项:

sync: {
  // 增量同步模式:true - 只同步新增/未同步数据,false - 同步所有数据
  incremental: true,
  // 同步状态字段
  statusField: 'sync_status',
  // 最后同步时间字段
  timeField: 'last_sync_time',
  // 已同步状态值
  syncedValue: 1,
  // 未同步状态值
  unsyncedValue: 0,
  // 自动同步配置
  autoSync: {
    // 是否启用自动同步
    enabled: true,
    // 同步间隔时间(单位:分钟)
    interval: 5
  }
}

简道云配置

src/config/config.js 中配置简道云API信息:

jiandaoyun: {
  appId: '简道云应用ID',
  entryId: '简道云表单ID',
  apiKey: '简道云API密钥'
}

字段映射

src/config/config.js 中配置数据库字段与简道云表单字段的映射关系:

fieldMapping: {
  'userId': '简道云字段ID',
  'company': '简道云字段ID',
  'name': '简道云字段ID',
  'phoneNumber': '简道云字段ID',
  'type': '简道云字段ID',
  'city': '简道云字段ID'
  // 其他字段映射...
}

使用方法

安装依赖

npm install

运行服务

启动自动同步服务

node index.js

这将启动自动同步服务,每隔5分钟(可在配置中修改)自动检查并同步数据库中的新增数据。

执行一次全量同步

node index.js --full-sync

这将执行一次全量同步,同步数据库中的所有数据到简道云表单。

执行一次增量同步

node index.js --incremental-sync

这将执行一次增量同步,只同步数据库中未同步的数据到简道云表单。

测试数据库连接

node index.js --test-db

这将测试数据库连接是否正常。

测试简道云API连接

node index.js --test-jiandao

这将测试简道云API连接是否正常。

测试所有连接

node index.js --test-all

这将测试数据库连接和简道云API连接是否正常。

注意事项

  1. 确保数据库中的用户表包含 sync_statuslast_sync_time 字段,用于标记同步状态和最后同步时间
  2. 确保简道云表单中已创建对应的字段,并在配置文件中正确配置字段映射关系
  3. 自动同步服务需要保持运行状态才能定期执行同步
  4. 重复的电话号码数据会被跳过,不会重复写入简道云表单

终止服务

要终止自动同步服务,可以在终端中按 Ctrl + C 键。