← back to Dw Launches
db.js
38 lines
'use strict';
/*
* dw-launches DB layer — read-only access to the local dw_unified mirror.
* Defaults to Unix-socket peer auth (same path psql uses on Mac2), so no
* password is needed locally. Everything is env-overridable for other hosts.
* PGHOST (default /tmp — Homebrew PG socket dir)
* PGDATABASE (default dw_unified)
* PGUSER (default $USER / stevestudio2)
* Or pass a full DATABASE_URL to override entirely.
*/
const { Pool } = require('pg');
const pool = process.env.DATABASE_URL
? new Pool({ connectionString: process.env.DATABASE_URL, max: 4 })
: new Pool({
host: process.env.PGHOST || '/tmp',
database: process.env.PGDATABASE || 'dw_unified',
user: process.env.PGUSER || process.env.USER || 'stevestudio2',
max: 4
});
pool.on('error', (e) => console.error('[db] pool error:', e.message));
async function q(text, params) {
const c = await pool.connect();
try { return await c.query(text, params); }
finally { c.release(); }
}
// Quick liveness probe used by /api/media/sources so the UI can show a clear
// "DB unreachable" state instead of an empty grid.
async function ping() {
try { await q('select 1'); return true; }
catch { return false; }
}
module.exports = { pool, q, ping };