mod-portal-v2/server/utils/db.ts
2026-08-01 23:59:45 +02:00

39 lines
No EOL
1.1 KiB
TypeScript

import pg from 'pg'
const pool = new pg.Pool({
host: process.env.POSTGRES_HOST || 'localhost',
port: Number(process.env.POSTGRES_PORT) || 5432,
database: process.env.POSTGRES_DB || 'mod_portal',
user: process.env.POSTGRES_USER || 'postgres',
password: process.env.POSTGRES_PASSWORD || 'postgres',
})
const initDb = async () => {
try {
await pool.query(`
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
keycloak_id VARCHAR(255) UNIQUE NOT NULL,
email VARCHAR(255),
first_login_completed BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
sfid VARCHAR(255),
pid INTEGER
);
`)
await pool.query(`
ALTER TABLE users ADD COLUMN IF NOT EXISTS sfid VARCHAR(255);
ALTER TABLE users ADD COLUMN IF NOT EXISTS pid INTEGER;
`)
console.log('[DB INIT]: Table "users" checked/updated successfully.')
} catch (err) {
console.error('[DB INIT ERROR]:', err)
}
}
initDb()
export const query = (text: string, params?: any[]) => pool.query(text, params)