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.
152 lines
3.3 KiB
152 lines
3.3 KiB
|
3 months ago
|
# 数据同步服务
|
||
|
|
|
||
|
|
## 简介
|
||
|
|
|
||
|
|
这是一个用于将数据库中的用户数据同步到简道云表单的服务。
|
||
|
|
|
||
|
|
## 功能特性
|
||
|
|
|
||
|
|
1. **数据同步**:将数据库中的用户数据同步到简道云表单
|
||
|
|
2. **重复数据检查**:跳过简道云表单中已存在的电话号码数据
|
||
|
|
3. **增量同步**:只同步新增/未同步的数据(默认启用)
|
||
|
|
4. **全量同步**:同步所有数据
|
||
|
|
5. **自动同步**:定期自动检查并同步数据库中的新增数据
|
||
|
|
|
||
|
|
## 配置选项
|
||
|
|
|
||
|
|
### 数据库配置
|
||
|
|
|
||
|
|
在 `src/config/config.js` 中配置数据库连接信息:
|
||
|
|
|
||
|
|
```javascript
|
||
|
|
db: {
|
||
|
|
host: '数据库主机地址',
|
||
|
|
port: 数据库端口号,
|
||
|
|
user: '数据库用户名',
|
||
|
|
password: '数据库密码',
|
||
|
|
database: '数据库名称'
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 同步配置
|
||
|
|
|
||
|
|
在 `src/config/config.js` 中配置同步选项:
|
||
|
|
|
||
|
|
```javascript
|
||
|
|
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信息:
|
||
|
|
|
||
|
|
```javascript
|
||
|
|
jiandaoyun: {
|
||
|
|
appId: '简道云应用ID',
|
||
|
|
entryId: '简道云表单ID',
|
||
|
|
apiKey: '简道云API密钥'
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 字段映射
|
||
|
|
|
||
|
|
在 `src/config/config.js` 中配置数据库字段与简道云表单字段的映射关系:
|
||
|
|
|
||
|
|
```javascript
|
||
|
|
fieldMapping: {
|
||
|
|
'userId': '简道云字段ID',
|
||
|
|
'company': '简道云字段ID',
|
||
|
|
'name': '简道云字段ID',
|
||
|
|
'phoneNumber': '简道云字段ID',
|
||
|
|
'type': '简道云字段ID',
|
||
|
|
'city': '简道云字段ID'
|
||
|
|
// 其他字段映射...
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## 使用方法
|
||
|
|
|
||
|
|
### 安装依赖
|
||
|
|
|
||
|
|
```bash
|
||
|
|
npm install
|
||
|
|
```
|
||
|
|
|
||
|
|
### 运行服务
|
||
|
|
|
||
|
|
#### 启动自动同步服务
|
||
|
|
|
||
|
|
```bash
|
||
|
|
node index.js
|
||
|
|
```
|
||
|
|
|
||
|
|
这将启动自动同步服务,每隔5分钟(可在配置中修改)自动检查并同步数据库中的新增数据。
|
||
|
|
|
||
|
|
#### 执行一次全量同步
|
||
|
|
|
||
|
|
```bash
|
||
|
|
node index.js --full-sync
|
||
|
|
```
|
||
|
|
|
||
|
|
这将执行一次全量同步,同步数据库中的所有数据到简道云表单。
|
||
|
|
|
||
|
|
#### 执行一次增量同步
|
||
|
|
|
||
|
|
```bash
|
||
|
|
node index.js --incremental-sync
|
||
|
|
```
|
||
|
|
|
||
|
|
这将执行一次增量同步,只同步数据库中未同步的数据到简道云表单。
|
||
|
|
|
||
|
|
#### 测试数据库连接
|
||
|
|
|
||
|
|
```bash
|
||
|
|
node index.js --test-db
|
||
|
|
```
|
||
|
|
|
||
|
|
这将测试数据库连接是否正常。
|
||
|
|
|
||
|
|
#### 测试简道云API连接
|
||
|
|
|
||
|
|
```bash
|
||
|
|
node index.js --test-jiandao
|
||
|
|
```
|
||
|
|
|
||
|
|
这将测试简道云API连接是否正常。
|
||
|
|
|
||
|
|
#### 测试所有连接
|
||
|
|
|
||
|
|
```bash
|
||
|
|
node index.js --test-all
|
||
|
|
```
|
||
|
|
|
||
|
|
这将测试数据库连接和简道云API连接是否正常。
|
||
|
|
|
||
|
|
## 注意事项
|
||
|
|
|
||
|
|
1. 确保数据库中的用户表包含 `sync_status` 和 `last_sync_time` 字段,用于标记同步状态和最后同步时间
|
||
|
|
2. 确保简道云表单中已创建对应的字段,并在配置文件中正确配置字段映射关系
|
||
|
|
3. 自动同步服务需要保持运行状态才能定期执行同步
|
||
|
|
4. 重复的电话号码数据会被跳过,不会重复写入简道云表单
|
||
|
|
|
||
|
|
## 终止服务
|
||
|
|
|
||
|
|
要终止自动同步服务,可以在终端中按 `Ctrl + C` 键。
|