This repository has been archived on 2024-04-05. You can view files and clone it, but cannot push or open issues/pull-requests.
score-tracker/database/database.js

45 lines
1.1 KiB
JavaScript
Raw Normal View History

const app = require('../app');
const { Client } = require('pg');
2021-11-18 21:13:03 +00:00
const fs = require('fs');
if (process.env.NODE_ENV !== 'production' || process.env.NODE_ENV !== 'testing') {
require('dotenv').config();
}
const client = new Client();
2021-11-18 21:13:03 +00:00
client.connect();
async function executeQuery(query, values = []) {
const result = await client.query({
rowMode: 'array',
text: query,
values: values
});
return result.rows;
}
2021-11-20 23:51:49 +00:00
async function Initialize() {
2021-11-18 21:13:03 +00:00
console.log("Initializing database...")
const sql = fs.readFileSync('database/init_database.sql').toString();
await executeQuery(sql);
console.log("Database initialized.")
}
async function checkForDatabaseInitialization() {
const scoresSchemaExistsQuery = `SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'scores'`;
let result = await executeQuery(scoresSchemaExistsQuery);
2021-11-18 21:13:03 +00:00
const scoresSchemaExists = result.length !== 0;
if(!scoresSchemaExists) {
await Initialize();
2021-11-18 21:13:03 +00:00
}
}
2021-11-20 23:51:49 +00:00
checkForDatabaseInitialization();
exports.executeQuery = executeQuery;