Files
PM_test/db_patch_v4_log.js
2026-06-19 17:58:47 +09:00

44 lines
1.6 KiB
JavaScript

const pool = require("./db/pool.js");
async function runPatch() {
const client = await pool.connect();
try {
console.log("🚀 Starting DB Patch for Activity Log (tb_log)...");
// 1. tb_log 테이블 컬럼 추가
console.log("Adding columns to ver4.tb_log...");
await client.query(`
ALTER TABLE ver4.tb_log
ADD COLUMN IF NOT EXISTS status VARCHAR(20) DEFAULT 'SUCCESS',
ADD COLUMN IF NOT EXISTS meta_data JSONB;
`);
// 2. _test_tb_log 테이블 컬럼 추가
console.log("Adding columns to ver4._test_tb_log...");
await client.query(`
ALTER TABLE ver4._test_tb_log
ADD COLUMN IF NOT EXISTS status VARCHAR(20) DEFAULT 'SUCCESS',
ADD COLUMN IF NOT EXISTS meta_data JSONB;
`);
// 3. 인덱스 최적화
console.log("Creating indexes for activity log tables...");
await client.query(`
CREATE INDEX IF NOT EXISTS idx_tb_log_project_date ON ver4.tb_log (project_id, log_date DESC);
CREATE INDEX IF NOT EXISTS idx_tb_log_user_date ON ver4.tb_log (user_id, log_date DESC);
CREATE INDEX IF NOT EXISTS idx_test_tb_log_project_date ON ver4._test_tb_log (project_id, log_date DESC);
CREATE INDEX IF NOT EXISTS idx_test_tb_log_user_date ON ver4._test_tb_log (user_id, log_date DESC);
`);
console.log("🎉 DB Patch for Activity Log completed successfully!");
} catch (err) {
console.error("❌ DB Patch Error:", err);
} finally {
client.release();
await pool.end();
}
}
runPatch();