65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
/**
|
|||
|
|
* 示例数据种子脚本
|
||
|
|
* 为云睿资产管理系统添加初始示例数据
|
||
|
|
*/
|
||
|
|
|
||
|
|
require('dotenv').config({ path: require('path').join(__dirname, '..', '.env') });
|
||
|
|
|
||
|
|
const { sequelize } = require('../db');
|
||
|
|
const Room = require('../models/Room');
|
||
|
|
const Rack = require('../models/Rack');
|
||
|
|
const Business = require('../models/Business');
|
||
|
|
const Role = require('../models/Role');
|
||
|
|
const { generateId } = require('../utils/idGenerator');
|
||
|
|
|
||
|
|
async function seedData() {
|
||
|
|
try {
|
||
|
|
console.log('开始同步数据库结构...');
|
||
|
|
await sequelize.sync();
|
||
|
|
console.log('数据库结构同步成功');
|
||
|
|
|
||
|
|
// 1. 创建示例机房
|
||
|
|
console.log('正在创建示例机房...');
|
||
|
|
const room = await Room.create({
|
||
|
|
name: '北京通州一号机房',
|
||
|
|
location: '北京市通州区马驹桥',
|
||
|
|
area: 500,
|
||
|
|
capacity: 100,
|
||
|
|
description: '公司核心数据中心,具备双路供电及精密空调系统。'
|
||
|
|
});
|
||
|
|
console.log(`已创建机房: ${room.name} (${room.roomId})`);
|
||
|
|
|
||
|
|
// 2. 创建示例业务
|
||
|
|
console.log('正在创建示例业务...');
|
||
|
|
const biz = await Business.create({
|
||
|
|
businessId: 'BIZ001',
|
||
|
|
name: '云端计算核心',
|
||
|
|
description: '负责核心云端计算资源的分配与管理。',
|
||
|
|
contact: '王经理',
|
||
|
|
phone: '13800000000'
|
||
|
|
});
|
||
|
|
console.log(`已创建业务: ${biz.name}`);
|
||
|
|
|
||
|
|
// 3. 创建示例机柜
|
||
|
|
console.log('正在创建示例机柜...');
|
||
|
|
const rack = await Rack.create({
|
||
|
|
rackId: 'RACK001',
|
||
|
|
name: 'A-01',
|
||
|
|
roomId: room.roomId,
|
||
|
|
uCount: 42,
|
||
|
|
maxPower: 8000,
|
||
|
|
status: 'active',
|
||
|
|
description: '标准 42U 机柜,位于 A 排 01 位。'
|
||
|
|
});
|
||
|
|
console.log(`已创建机柜: ${rack.name}`);
|
||
|
|
|
||
|
|
console.log('\n示例数据加载成功!');
|
||
|
|
process.exit(0);
|
||
|
|
} catch (error) {
|
||
|
|
console.error('示例数据加载失败:', error);
|
||
|
|
process.exit(1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
seedData();
|