6.2 KiB
6.2 KiB
resume_info 表同步指南
❌ 错误信息
Unknown column 'sn_code' in 'field list'
这个错误表示数据库中的 resume_info 表缺少 sn_code 字段。
🔧 解决方案
方案1: 使用同步脚本(推荐)
运行以下命令同步表结构:
node scripts/sync_resume_table.js
这个脚本会:
- ✅ 使用
alter: true模式同步表(保留现有数据) - ✅ 显示当前表结构
- ✅ 检查所有必需字段是否存在
- ✅ 提示缺少的字段
方案2: 手动添加字段
如果同步脚本无法运行,可以手动执行以下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: 重建表(会删除现有数据!)
⚠️ 警告:此操作会删除表中所有数据!
如果表中没有重要数据,可以删除表让系统重新创建:
DROP TABLE IF EXISTS `resume_info`;
然后重启应用,Sequelize 会自动创建表(因为模型中有 sync({ force: true }))。
📋 必需字段列表
resume_info 表必须包含以下字段:
核心字段
- ✅
id- 主键(VARCHAR/UUID) - ✅
sn_code- 设备SN码(VARCHAR(50),必填) - ✅
account_id- 用户ID(VARCHAR(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查看表结构:
DESCRIBE resume_info;
或者查看完整的建表语句:
SHOW CREATE TABLE resume_info;
📝 完整建表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='简历信息表';
✅ 验证修复
修复后,运行以下代码验证:
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);
🚀 下一步
表结构同步完成后,就可以正常使用简历存储功能了:
const jobManager = require('./api/middleware/job/jobManager');
const resumeData = await jobManager.get_online_resume(
'GHJU',
mqttClient,
{ platform: 'boss' }
);