import grabDbSSL from "./backend/grabDbSSL"; import mariadb, { ConnectionConfig } from "mariadb"; type Params = { useLocal?: boolean; dbConfig?: ConnectionConfig; ssl?: boolean; connectionLimit?: number; }; export default async function setupDSQLDb({ useLocal, dbConfig, ssl, connectionLimit = 20, }: Params) { global.DSQL_USE_LOCAL = useLocal || true; const conn = await mariadb.createConnection({ host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_USERNAME, password: process.env.DSQL_DB_PASSWORD, database: process.env.DSQL_DB_NAME, charset: "utf8mb4", ...dbConfig, ssl: ssl ? grabDbSSL() : undefined, supportBigNumbers: true, bigNumberStrings: false, dateStrings: true, }); // const conn = mariadb.createPool({ // host: process.env.DSQL_DB_HOST, // user: process.env.DSQL_DB_USERNAME, // password: process.env.DSQL_DB_PASSWORD, // database: process.env.DSQL_DB_NAME, // charset: "utf8mb4", // ...dbConfig, // ssl: ssl ? grabDbSSL() : undefined, // connectionLimit, // supportBigNumbers: true, // bigNumberStrings: false, // dateStrings: true, // }); global.DSQL_DB_CONN = conn; // let readOnlyConnection; // if (addReadOnlyConn) { // readOnlyConnection = mariadb.createPool({ // host: process.env.DSQL_DB_HOST, // user: process.env.DSQL_DB_READ_ONLY_USERNAME, // password: process.env.DSQL_DB_READ_ONLY_PASSWORD, // database: process.env.DSQL_DB_NAME, // charset: "utf8mb4", // ...readOnlyDbConfig, // ssl: ssl ? grabDbSSL() : undefined, // connectionLimit, // }); // global.DSQL_READ_ONLY_DB_CONN = readOnlyConnection; // } return { conn, // readOnlyConnection, }; }