50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
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);
|
|
});
|