diff --git a/keyserver/flow-typed/npm/mysql_v2.x.x.js b/keyserver/flow-typed/npm/mysql_v2.x.x.js --- a/keyserver/flow-typed/npm/mysql_v2.x.x.js +++ b/keyserver/flow-typed/npm/mysql_v2.x.x.js @@ -42,7 +42,6 @@ multipleStatements?: boolean, flags?: string, ssl?: string | {...}, - ... }; declare type QueryOptions = { @@ -134,12 +133,12 @@ escape(val: mixed, stringifyObjects?: boolean, timeZone?: string): string; } - declare type PoolOptions = ConnectionOptions & { + declare type PoolOptions = { + ...ConnectionOptions, acquireTimeout?: number, connectionLimit?: number, waitForConnections?: boolean, queueLimit?: number, - ... }; declare type PoolClusterSelector = "RR" | "ORDER" | "RANDOM"; diff --git a/keyserver/src/database/database.js b/keyserver/src/database/database.js --- a/keyserver/src/database/database.js +++ b/keyserver/src/database/database.js @@ -1,6 +1,6 @@ // @flow -import type { QueryResults } from 'mysql'; +import type { ConnectionOptions, QueryResults, PoolOptions } from 'mysql'; import mysql from 'mysql2'; import mysqlPromise from 'mysql2/promise'; import SQL from 'sql-template-strings'; @@ -30,13 +30,14 @@ } const scriptContext = getScriptContext(); const dbConfig = await getDBConfig(); - pool = mysqlPromise.createPool({ + const options: PoolOptions = { ...dbConfig, connectionLimit, multipleStatements: !!( scriptContext && scriptContext.allowMultiStatementSQLQueries ), - }); + }; + pool = mysqlPromise.createPool(options); databaseMonitor = new DatabaseMonitor(pool); return pool; } @@ -175,10 +176,11 @@ async function getMultipleStatementsConnection() { const dbConfig = await getDBConfig(); - return await mysqlPromise.createConnection({ + const options: ConnectionOptions = { ...dbConfig, multipleStatements: true, - }); + }; + return await mysqlPromise.createConnection(options); } export {