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

6.2 KiB
Raw Permalink Blame History

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 - 用户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查看表结构

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' }
);