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();