52 lines
3.0 KiB
JavaScript
52 lines
3.0 KiB
JavaScript
const { sequelize } = require('./db');
|
|||
|
|
const FaultCategory = require('./models/FaultCategory');
|
||
|
|
|
||
|
|
async function recreateFaultCategoryTable() {
|
||
|
|
try {
|
||
|
|
console.log('开始重建故障分类表...');
|
||
|
|
|
||
|
|
await sequelize.authenticate();
|
||
|
|
console.log('数据库连接成功');
|
||
|
|
|
||
|
|
// 删除旧表并创建新表
|
||
|
|
await sequelize.query('DROP TABLE IF EXISTS fault_categories');
|
||
|
|
console.log('旧表已删除');
|
||
|
|
|
||
|
|
await FaultCategory.sync();
|
||
|
|
console.log('新表已创建');
|
||
|
|
|
||
|
|
// 初始化默认分类
|
||
|
|
const defaultCategories = [
|
||
|
|
{ name: '系统故障', description: '操作系统、应用程序等系统软件的故障问题', priority: 1, defaultPriority: 'high', expectedDuration: 120, isSystem: true, isActive: true },
|
||
|
|
{ name: '硬件故障', description: '物理设备、服务器、存储等硬件设备的故障问题', priority: 2, defaultPriority: 'high', expectedDuration: 180, isSystem: true, isActive: true },
|
||
|
|
{ name: '网络故障', description: '网络连接、交换机、路由器等网络相关故障', priority: 3, defaultPriority: 'high', expectedDuration: 120, isSystem: true, isActive: true },
|
||
|
|
{ name: '软件故障', description: '应用程序错误、软件兼容性等问题', priority: 4, defaultPriority: 'medium', expectedDuration: 90, isSystem: true, isActive: true },
|
||
|
|
{ name: '安全事件', description: '安全漏洞、入侵检测、权限异常等安全问题', priority: 5, defaultPriority: 'urgent', expectedDuration: 60, isSystem: true, isActive: true },
|
||
|
|
{ name: '性能问题', description: '系统响应慢、资源利用率高等性能问题', priority: 6, defaultPriority: 'medium', expectedDuration: 120, isSystem: true, isActive: true },
|
||
|
|
{ name: '配置变更', description: '系统配置、软件配置等变更需求', priority: 7, defaultPriority: 'low', expectedDuration: 60, isSystem: true, isActive: true },
|
||
|
|
{ name: '例行维护', description: '定期维护、巡检、更新等计划性工作', priority: 8, defaultPriority: 'low', expectedDuration: 120, isSystem: true, isActive: true },
|
||
|
|
{ name: '数据问题', description: '数据错误、数据丢失、数据同步等数据相关问题', priority: 9, defaultPriority: 'high', expectedDuration: 150, isSystem: true, isActive: true },
|
||
|
|
{ name: '其他问题', description: '无法归类的其他问题', priority: 99, defaultPriority: 'medium', expectedDuration: 90, isSystem: true, isActive: true }
|
||
|
|
];
|
||
|
|
|
||
|
|
for (const cat of defaultCategories) {
|
||
|
|
const categoryId = `CAT${Date.now().toString(36).toUpperCase()}${Math.random().toString(36).substr(2, 4).toUpperCase()}`;
|
||
|
|
await FaultCategory.create({
|
||
|
|
categoryId,
|
||
|
|
...cat,
|
||
|
|
solutions: [],
|
||
|
|
metadata: {}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
console.log('默认分类已初始化');
|
||
|
|
|
||
|
|
console.log('故障分类表重建完成!');
|
||
|
|
process.exit(0);
|
||
|
|
} catch (error) {
|
||
|
|
console.error('操作失败:', error);
|
||
|
|
process.exit(1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
recreateFaultCategoryTable();
|