39 lines
No EOL
1.1 KiB
TypeScript
39 lines
No EOL
1.1 KiB
TypeScript
import pg from 'pg'
|
|
|
|
const pool = new pg.Pool({
|
|
host: process.env.POSTGRES_HOST,
|
|
port: Number(process.env.POSTGRES_PORT),
|
|
database: process.env.POSTGRES_DB,
|
|
user: process.env.POSTGRES_USER,
|
|
password: process.env.POSTGRES_PASSWORD,
|
|
})
|
|
|
|
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) |