Files
autoAiWorkSys/_doc/数据库表同步指南.md
张成 5d7444cd65 1
2025-11-24 13:23:42 +08:00

211 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# resume_info 表同步指南
## ❌ 错误信息
```
Unknown column 'sn_code' in 'field list'
```
这个错误表示数据库中的 `resume_info` 表缺少 `sn_code` 字段。
## 🔧 解决方案
### 方案1: 使用同步脚本(推荐)
运行以下命令同步表结构:
```bash
node scripts/sync_resume_table.js
```
这个脚本会:
- ✅ 使用 `alter: true` 模式同步表(保留现有数据)
- ✅ 显示当前表结构
- ✅ 检查所有必需字段是否存在
- ✅ 提示缺少的字段
### 方案2: 手动添加字段
如果同步脚本无法运行可以手动执行以下SQL
```sql
-- 添加 sn_code 字段
ALTER TABLE `resume_info`
ADD COLUMN `sn_code` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '设备SN码' AFTER `id`;
-- 添加 account_id 字段
ALTER TABLE `resume_info`
ADD COLUMN `account_id` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '用户ID' AFTER `sn_code`;
-- 添加索引
ALTER TABLE `resume_info`
ADD INDEX `idx_sn_code` (`sn_code`);
```
### 方案3: 重建表(会删除现有数据!)
⚠️ **警告:此操作会删除表中所有数据!**
如果表中没有重要数据,可以删除表让系统重新创建:
```sql
DROP TABLE IF EXISTS `resume_info`;
```
然后重启应用Sequelize 会自动创建表(因为模型中有 `sync({ force: true })`)。
## 📋 必需字段列表
`resume_info` 表必须包含以下字段:
### 核心字段
-`id` - 主键VARCHAR/UUID
-`sn_code` - 设备SN码VARCHAR(50),必填)
-`account_id` - 用户IDVARCHAR(50),必填)
-`platform` - 平台VARCHAR(20),默认'boss'
### 个人信息
-`fullName` - 姓名
-`gender` - 性别
-`age` - 年龄
-`phone` - 电话
-`email` - 邮箱
-`location` - 所在地
### 教育背景
-`education` - 学历
-`major` - 专业
-`school` - 毕业院校
-`graduationYear` - 毕业年份
### 工作信息
-`workYears` - 工作年限
-`currentPosition` - 当前职位
-`currentCompany` - 当前公司
-`currentSalary` - 当前薪资
### 期望信息
-`expectedPosition` - 期望职位
-`expectedSalary` - 期望薪资
-`expectedLocation` - 期望地点
-`expectedIndustry` - 期望行业
### 技能和经验TEXT类型
-`skills` - 技能标签JSON
-`skillDescription` - 技能描述
-`certifications` - 证书资质JSON
-`projectExperience` - 项目经验JSON
-`workExperience` - 工作经历JSON
### AI分析字段TEXT类型
-`aiSkillTags` - AI技能标签JSON
-`aiStrengths` - AI优势分析
-`aiWeaknesses` - AI劣势分析
-`aiCareerSuggestion` - AI职业建议
-`aiCompetitiveness` - AI竞争力评分INT
### 其他字段
-`resumeContent` - 简历内容TEXT
-`originalData` - 原始数据TEXT/JSON
-`isActive` - 是否活跃BOOLEAN
-`isPublic` - 是否公开BOOLEAN
-`syncTime` - 同步时间DATETIME
## 🔍 验证表结构
运行以下SQL查看表结构
```sql
DESCRIBE resume_info;
```
或者查看完整的建表语句:
```sql
SHOW CREATE TABLE resume_info;
```
## 📝 完整建表SQL参考
```sql
CREATE TABLE `resume_info` (
`id` varchar(255) NOT NULL,
`sn_code` varchar(50) NOT NULL DEFAULT '' COMMENT '设备SN码',
`account_id` varchar(50) NOT NULL DEFAULT '' COMMENT '用户ID',
`platform` varchar(20) NOT NULL DEFAULT 'boss' COMMENT '平台',
`fullName` varchar(50) DEFAULT '' COMMENT '姓名',
`gender` varchar(10) DEFAULT '' COMMENT '性别',
`age` int(11) DEFAULT 0 COMMENT '年龄',
`phone` varchar(20) DEFAULT '' COMMENT '电话',
`email` varchar(100) DEFAULT '' COMMENT '邮箱',
`location` varchar(100) DEFAULT '' COMMENT '所在地',
`education` varchar(50) DEFAULT '' COMMENT '学历',
`major` varchar(100) DEFAULT '' COMMENT '专业',
`school` varchar(200) DEFAULT '' COMMENT '毕业院校',
`graduationYear` int(11) DEFAULT 0 COMMENT '毕业年份',
`workYears` varchar(50) DEFAULT '' COMMENT '工作年限',
`currentPosition` varchar(100) DEFAULT '' COMMENT '当前职位',
`currentCompany` varchar(200) DEFAULT '' COMMENT '当前公司',
`currentSalary` varchar(50) DEFAULT '' COMMENT '当前薪资',
`expectedPosition` varchar(100) DEFAULT '' COMMENT '期望职位',
`expectedSalary` varchar(50) DEFAULT '' COMMENT '期望薪资',
`expectedLocation` varchar(100) DEFAULT '' COMMENT '期望地点',
`expectedIndustry` varchar(100) DEFAULT '' COMMENT '期望行业',
`skills` text COMMENT '技能标签(JSON)',
`skillDescription` text COMMENT '技能描述',
`certifications` text COMMENT '证书资质(JSON)',
`projectExperience` text COMMENT '项目经验(JSON)',
`workExperience` text COMMENT '工作经历(JSON)',
`aiSkillTags` text COMMENT 'AI技能标签(JSON)',
`aiStrengths` text COMMENT 'AI优势分析',
`aiWeaknesses` text COMMENT 'AI劣势分析',
`aiCareerSuggestion` text COMMENT 'AI职业建议',
`aiCompetitiveness` int(11) DEFAULT 0 COMMENT 'AI竞争力评分',
`resumeContent` text COMMENT '简历内容',
`originalData` text COMMENT '原始数据(JSON)',
`isActive` tinyint(1) DEFAULT 1 COMMENT '是否活跃',
`isPublic` tinyint(1) DEFAULT 1 COMMENT '是否公开',
`syncTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '同步时间',
PRIMARY KEY (`id`),
KEY `idx_sn_code` (`sn_code`),
KEY `idx_platform` (`platform`),
KEY `idx_isActive` (`isActive`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='简历信息表';
```
## ✅ 验证修复
修复后,运行以下代码验证:
```javascript
const db = require('./api/middleware/dbProxy');
const resume_info = db.getModel('resume_info');
// 测试创建记录
const testResume = await resume_info.create({
id: 'test-uuid-123',
sn_code: 'TEST001',
account_id: 'user123',
platform: 'boss',
fullName: '测试用户',
isActive: true
});
console.log('✅ 创建成功:', testResume.id);
```
## 🚀 下一步
表结构同步完成后,就可以正常使用简历存储功能了:
```javascript
const jobManager = require('./api/middleware/job/jobManager');
const resumeData = await jobManager.get_online_resume(
'GHJU',
mqttClient,
{ platform: 'boss' }
);
```