- DB 테이블명 변경 마이그레이션 스크립트 추가 (migrate_v5_rename_remote.js) - Backend (server.js): 쿼리 및 매핑 로직을 asset_remote 및 remotes 속성으로 업데이트 - Frontend (HWModal.ts): 폼 필드와 데이터 바인딩을 remotes로 일괄 수정 - 유틸리티 스크립트의 레퍼런스 일괄 업데이트
45 lines
1.3 KiB
JavaScript
45 lines
1.3 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 dropLegacyTables() {
|
|
const connection = await mysql.createConnection({
|
|
host: DB_HOST,
|
|
user: DB_USER,
|
|
password: DB_PASS,
|
|
database: DB_NAME,
|
|
port: parseInt(DB_PORT || '3306')
|
|
});
|
|
|
|
console.log('🧹 Starting cleanup of obsolete legacy backup tables...');
|
|
|
|
const tablesToDrop = [
|
|
'asset_pc', 'asset_pc_backup',
|
|
'asset_server', 'asset_server_backup',
|
|
'asset_storage', 'asset_storage_backup',
|
|
'asset_remote_backup', // IMPORTANT: DO NOT drop asset_remote!
|
|
'asset_equipment', 'asset_equipment_backup',
|
|
'asset_office_supplies', 'asset_office_supplies_backup',
|
|
'asset_survey', 'asset_survey_backup',
|
|
'asset_vip', 'asset_vip_backup',
|
|
'asset_pc_parts'
|
|
];
|
|
|
|
for (const table of tablesToDrop) {
|
|
try {
|
|
await connection.query(`DROP TABLE IF EXISTS ${table}`);
|
|
console.log(`✅ Dropped table: ${table}`);
|
|
} catch (err) {
|
|
console.warn(`⚠️ Failed to drop table ${table}: ${err.message}`);
|
|
}
|
|
}
|
|
|
|
console.log('🎉 Cleanup complete. Database is now lean and mean.');
|
|
await connection.end();
|
|
}
|
|
|
|
dropLegacyTables().catch(console.error);
|