Files

59 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

const { sequelize } = require('../db');
async function addIsSystemColumn() {
try {
console.log('开始添加 isSystem 列到 deviceFields 表...');
// 检查列是否已存在
const tableInfo = await sequelize.query('PRAGMA table_info(deviceFields)', {
type: sequelize.QueryTypes.SELECT,
});
const hasIsSystemColumn = tableInfo.some(col => col.name === 'isSystem');
if (hasIsSystemColumn) {
console.log('isSystem 列已存在,跳过添加');
} else {
// 添加 isSystem 列
await sequelize.query('ALTER TABLE deviceFields ADD COLUMN isSystem BOOLEAN DEFAULT 0', {
type: sequelize.QueryTypes.RAW,
});
console.log('isSystem 列添加成功');
}
// 更新现有数据:将核心字段标记为系统字段
const systemFields = [
'deviceId',
'name',
'type',
'model',
'serialNumber',
'rackId',
'position',
'height',
'powerConsumption',
'status',
'purchaseDate',
'warrantyExpiry',
'ipAddress',
'description',
];
for (const fieldName of systemFields) {
await sequelize.query(
`UPDATE deviceFields SET isSystem = 1 WHERE fieldName = '${fieldName}'`,
{ type: sequelize.QueryTypes.RAW }
);
}
console.log('系统字段标记完成');
console.log('数据库迁移完成');
process.exit(0);
} catch (error) {
console.error('迁移失败:', error);
process.exit(1);
}
}
addIsSystemColumn();