/** * dashboards 테이블 구조 확인 스크립트 */ const { Pool } = require('pg'); const databaseUrl = process.env.DATABASE_URL || 'postgresql://postgres:ph0909!!@39.117.244.52:11132/plm'; const pool = new Pool({ connectionString: databaseUrl, }); async function checkDashboardStructure() { const client = await pool.connect(); try { console.log('🔍 dashboards 테이블 구조 확인 중...\n'); // 컬럼 정보 조회 const columns = await client.query(` SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_name = 'dashboards' ORDER BY ordinal_position `); console.log('📋 dashboards 테이블 컬럼:\n'); columns.rows.forEach((col, index) => { console.log(`${index + 1}. ${col.column_name} (${col.data_type}) - Nullable: ${col.is_nullable}`); }); // 샘플 데이터 조회 console.log('\n📊 샘플 데이터 (첫 1개):'); const sample = await client.query(` SELECT * FROM dashboards LIMIT 1 `); if (sample.rows.length > 0) { console.log(JSON.stringify(sample.rows[0], null, 2)); } else { console.log('❌ 데이터가 없습니다.'); } // dashboard_elements 테이블도 확인 console.log('\n🔍 dashboard_elements 테이블 구조 확인 중...\n'); const elemColumns = await client.query(` SELECT column_name, data_type, is_nullable FROM information_schema.columns WHERE table_name = 'dashboard_elements' ORDER BY ordinal_position `); console.log('📋 dashboard_elements 테이블 컬럼:\n'); elemColumns.rows.forEach((col, index) => { console.log(`${index + 1}. ${col.column_name} (${col.data_type}) - Nullable: ${col.is_nullable}`); }); } catch (error) { console.error('❌ 오류 발생:', error.message); } finally { client.release(); await pool.end(); } } checkDashboardStructure();