Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
seqConnection.ts 1.38 KiB
import { Sequelize } from "sequelize";
import envVars from "./config";
import { Client } from "pg";

let sequelizeConnection = new Sequelize(
  envVars.dbName,
  envVars.dbUser,
  envVars.dbPassword,
  {
    host: envVars.dbHost,
    dialect: envVars.dbDriver,
    logging: false,
  }
);
//check if DB in env exists. If not, create a one
export const checkDB = async () => {
  const client = new Client({
    host: envVars.dbHost,
    port: 5432, //envVars.dbPort does not exist!
    user: envVars.dbUser,
    password: envVars.dbPassword,
  });
  await client.connect();

  //search for db in pg-catalog. if not found, create a one
  await client
    .query(`SELECT * FROM pg_database WHERE datname = '${envVars.dbName}'`)
    .then((res) => {
      //------------------------------------------------then
      if (res.rows.length === 0) {
        //given db not found
        console.log(
          `${envVars.dbName} not found!\n${envVars.dbName} created..!`
        );
        client.query(`CREATE DATABASE "${envVars.dbName}"`);
        sequelizeConnection = new Sequelize(
          envVars.dbName,
          envVars.dbUser,
          envVars.dbPassword,
          {
            host: envVars.dbHost,
            dialect: envVars.dbDriver,
            logging: false,
          }
        );
      } else {
        console.log("-------\nres:\n", res.rows);
      }
    });
};
export default sequelizeConnection;