70 lines
1.9 KiB
TypeScript
70 lines
1.9 KiB
TypeScript
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,
|
|
};
|
|
}
|