Files
Jellystat/backend/create_database.js
2025-09-19 23:11:22 -05:00

39 lines
1.2 KiB
JavaScript

const { Client } = require('pg');
const _POSTGRES_USER = process.env.POSTGRES_USER;
const _POSTGRES_PASSWORD = process.env.POSTGRES_PASSWORD;
const _POSTGRES_IP = process.env.POSTGRES_IP;
const _POSTGRES_PORT = process.env.POSTGRES_PORT;
const _POSTGRES_DATABASE = process.env.POSTGRES_DB || 'jfstat';
const _POSTGRES_SSL_REJECT_UNAUTHORIZED = process.env.POSTGRES_SSL_REJECT_UNAUTHORIZED === undefined ? true : process.env.POSTGRES_SSL_REJECT_UNAUTHORIZED === "true";
const client = new Client({
host: _POSTGRES_IP,
user: _POSTGRES_USER,
password: _POSTGRES_PASSWORD,
port: _POSTGRES_PORT,
...(process.env.POSTGRES_SSL_ENABLED === "true"
? { ssl: { rejectUnauthorized: _POSTGRES_SSL_REJECT_UNAUTHORIZED } }
: {})
});
const createDatabase = async () => {
try {
await client.connect(); // gets connection
await client.query('CREATE DATABASE ' + _POSTGRES_DATABASE); // sends queries
return true;
} catch (error) {
if (!error.stack.includes('already exists')) {
console.error(error.stack);
}
return false;
} finally {
await client.end(); // closes connection
}
};
module.exports = {
createDatabase: createDatabase,
};