# 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` - 用户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查看表结构: ```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' } ); ```