Files
zhang1106 63f0cb570e refactor: 统一代码风格并迁移至 ESLint 新配置
style(backend): 格式化模型文件代码
style(frontend): 调整组件代码格式
chore: 删除旧 ESLint 配置并添加新配置
refactor(backend): 重构模型定义语法
style: 统一箭头函数和对象属性简写
2026-03-27 19:12:16 +08:00

48 lines
1.5 KiB
JavaScript

const { sequelize } = require('../db');
const { QueryTypes } = require('sequelize');
async function ensureSchema() {
try {
const dbType = sequelize.getDialect();
console.log(`Checking schema for ${dbType}...`);
if (dbType === 'sqlite') {
// Check if nicId column exists in device_ports
const [columns] = await sequelize.query('PRAGMA table_info(device_ports)');
const hasNicId = columns.some(col => col.name === 'nicId');
if (!hasNicId) {
console.log('Adding nicId column to device_ports...');
await sequelize.query(
'ALTER TABLE device_ports ADD COLUMN nicId VARCHAR(255) NULL REFERENCES network_cards(nicId)'
);
console.log('Added nicId column.');
} else {
console.log('nicId column already exists in device_ports.');
}
} else if (dbType === 'mysql') {
const [columns] = await sequelize.query("SHOW COLUMNS FROM `device_ports` LIKE 'nicId'", {
type: QueryTypes.SELECT,
});
if (columns.length === 0) {
console.log('Adding nicId column to device_ports...');
await sequelize.query(
'ALTER TABLE `device_ports` ADD COLUMN `nicId` VARCHAR(255) NULL AFTER `deviceId`'
);
console.log('Added nicId column.');
} else {
console.log('nicId column already exists.');
}
}
console.log('Schema check complete.');
} catch (error) {
console.error('Schema check failed:', error);
} finally {
await sequelize.close();
}
}
ensureSchema();