feat: 하드웨어 자동 변경 이력 생성 및 자산 관리 프로세스 고도화
This commit is contained in:
49
db_fix_data.js
Normal file
49
db_fix_data.js
Normal file
@@ -0,0 +1,49 @@
|
||||
import mysql from 'mysql2/promise';
|
||||
import dotenv from 'dotenv';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const { DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT } = process.env;
|
||||
|
||||
async function migrateData() {
|
||||
const connection = await mysql.createConnection({
|
||||
host: DB_HOST,
|
||||
user: DB_USER,
|
||||
password: DB_PASS,
|
||||
database: DB_NAME,
|
||||
port: parseInt(DB_PORT || '3306')
|
||||
});
|
||||
|
||||
console.log('🔄 기존 데이터 보정 시작 (상세유형 = 유형)...');
|
||||
|
||||
const tables = ['pc_assets', 'server_assets', 'storage_assets', 'equip_assets', 'mobile_assets'];
|
||||
|
||||
for (const table of tables) {
|
||||
// 1. 유형(type)이 비어있는 경우 기본값 채우기 (보정 전 단계)
|
||||
let defaultType = '기타';
|
||||
if (table === 'server_assets') defaultType = '서버';
|
||||
else if (table === 'pc_assets') defaultType = '개인PC';
|
||||
else if (table === 'storage_assets') defaultType = '스토리지';
|
||||
else if (table === 'equip_assets') defaultType = '전산비품';
|
||||
else if (table === 'mobile_assets') defaultType = '모바일기기';
|
||||
|
||||
await connection.query(`UPDATE ${table} SET type = ? WHERE type IS NULL OR type = ''`, [defaultType]);
|
||||
|
||||
// 2. 개인PC가 아닌 데이터들에 대해 상세유형 = 유형 업데이트
|
||||
const [result] = await connection.query(`
|
||||
UPDATE ${table}
|
||||
SET detail_purpose = type
|
||||
WHERE type NOT IN ('개인PC', 'PC')
|
||||
`);
|
||||
|
||||
console.log(`✅ ${table}: ${result.affectedRows}개 데이터 보정 완료`);
|
||||
}
|
||||
|
||||
console.log('✨ 모든 기존 데이터 보정이 완료되었습니다.');
|
||||
await connection.end();
|
||||
}
|
||||
|
||||
migrateData().catch(err => {
|
||||
console.error('❌ 데이터 보정 실패:', err);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user