mirror of
https://github.com/BreizhHardware/Jellystat.git
synced 2026-01-18 16:27:20 +01:00
39 lines
1.2 KiB
JavaScript
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,
|
|
};
|