56 lines
1.8 KiB
JavaScript
56 lines
1.8 KiB
JavaScript
const mysql = require('mysql2/promise');
|
|
require('dotenv').config({ override: true });
|
|
|
|
(async () => {
|
|
const pool = mysql.createPool({
|
|
host: process.env.DB_HOST,
|
|
user: process.env.DB_USER,
|
|
password: process.env.DB_PASS,
|
|
database: process.env.DB_NAME,
|
|
port: parseInt(process.env.DB_PORT || '3306')
|
|
});
|
|
|
|
const connection = await pool.getConnection();
|
|
try {
|
|
await connection.beginTransaction();
|
|
|
|
const asset = {
|
|
id: 'debug_test_' + Date.now(),
|
|
asset_code: 'SVR-240612-DEBUG',
|
|
category: '서버',
|
|
asset_type: '서버PC'
|
|
};
|
|
|
|
console.log('--- Step 1: Insert into asset_core ---');
|
|
const coreFields = ['id', 'asset_code', 'category', 'asset_type'];
|
|
const coreData = {};
|
|
coreFields.forEach(f => { if (asset[f] !== undefined) coreData[f] = asset[f]; });
|
|
const coreKeys = Object.keys(coreData);
|
|
const coreSql = `INSERT INTO asset_core (${coreKeys.join(', ')}) VALUES (${coreKeys.map(() => '?').join(', ')})`;
|
|
|
|
const [coreRes] = await connection.query(coreSql, Object.values(coreData));
|
|
console.log('Core Insert Success:', coreRes);
|
|
|
|
console.log('\n--- Step 2: Insert into asset_spec ---');
|
|
const specData = {
|
|
asset_id: asset.id,
|
|
hw_status: '운영'
|
|
};
|
|
const specKeys = Object.keys(specData);
|
|
const specSql = `INSERT INTO asset_spec (${specKeys.join(', ')}) VALUES (${specKeys.map(() => '?').join(', ')})`;
|
|
|
|
const [specRes] = await connection.query(specSql, Object.values(specData));
|
|
console.log('Spec Insert Success:', specRes);
|
|
|
|
await connection.commit();
|
|
console.log('\n✅ Transaction Committed Successfully');
|
|
|
|
} catch (err) {
|
|
await connection.rollback();
|
|
console.error('\n❌ Error Caught:', err);
|
|
} finally {
|
|
connection.release();
|
|
await pool.end();
|
|
}
|
|
})();
|