const { Client } = require('pg'); const fs = require('fs'); const path = require('path'); const client = new Client({ host: '192.168.110.252', port: 15432, database: 'postgresql', user: 'postgresql', password: 'Jchl1528', }); async function main() { await client.connect(); await client.query('SET search_path TO healthlink_his'); const res = await client.query( "SELECT DISTINCT menu_name FROM sys_menu WHERE menu_type IN ('M','C') AND menu_name IS NOT NULL AND menu_name != '' ORDER BY menu_name" ); const names = res.rows.map(r => r.menu_name); fs.writeFileSync(path.join(__dirname, 'db_menus.json'), JSON.stringify(names, null, 2), 'utf8'); console.log('Total menus:', names.length); // Compare with mapping const map = require('../src/layout/components/Sidebar/menuTitleMap.js').default; const mappedNames = new Set(Object.keys(map)); const missing = names.filter(m => !mappedNames.has(m)); console.log('Already mapped:', names.length - missing.length); console.log('Missing:', missing.length); console.log('---Missing menus---'); missing.forEach(m => console.log(m)); await client.end(); } main().catch(e => { console.error(e.message); process.exit(1); });