// Refreshes meta.columns from the live catalog for every table in meta.tables // (meta.sync() is SECURITY DEFINER and granted to the app role). Idempotent. // bun scripts/db-meta-sync.ts uses DB_URL (personal_app) import postgres from 'postgres'; const url = process.env.DB_URL; if (!url) throw new Error('Set DB_URL (app role)'); const client = postgres(url, { max: 1, connect_timeout: 10, onnotice: () => {} }); try { const [registry] = await client`select to_regprocedure('meta.sync(integer)') is not null as ok`; if (!registry.ok) { console.log('meta.sync() not present; skipping'); } else { const [row] = await client`select meta.sync() as added`; console.log(`meta.sync(): ${row.added} column(s) added`); } } finally { await client.end(); }