diff --git a/packages/cubejs-bigquery-driver/src/BigQueryDriver.ts b/packages/cubejs-bigquery-driver/src/BigQueryDriver.ts index 4c8146c0bf52d..375bce32a2896 100644 --- a/packages/cubejs-bigquery-driver/src/BigQueryDriver.ts +++ b/packages/cubejs-bigquery-driver/src/BigQueryDriver.ts @@ -93,14 +93,15 @@ export class BigQueryDriver extends BaseDriver implements DriverInterface { testConnectionTimeout?: number, } = {} ) { - super({ - testConnectionTimeout: config.testConnectionTimeout, - }); - const dataSource = config.dataSource || assertDataSource('default'); + super({ + testConnectionTimeout: config.testConnectionTimeout, + isTestConnectionDisabled: getEnv('dbDisableTestConnection', { dataSource }), + }); + this.options = { scopes: [ 'https://www.googleapis.com/auth/bigquery', @@ -155,6 +156,10 @@ export class BigQueryDriver extends BaseDriver implements DriverInterface { } public async testConnection() { + if (this.isTestConnectionDisabled()) { + return; + } + await this.bigquery.query({ query: 'SELECT ? AS number', params: ['1'], diff --git a/packages/cubejs-mysql-aurora-serverless-driver/driver/AuroraServerlessMySqlDriver.js b/packages/cubejs-mysql-aurora-serverless-driver/driver/AuroraServerlessMySqlDriver.js index 1ea5bcd1af5cf..f6820ecfcf69d 100644 --- a/packages/cubejs-mysql-aurora-serverless-driver/driver/AuroraServerlessMySqlDriver.js +++ b/packages/cubejs-mysql-aurora-serverless-driver/driver/AuroraServerlessMySqlDriver.js @@ -33,14 +33,15 @@ class AuroraServerlessMySqlDriver extends BaseDriver { * Class constructor. */ constructor(config = {}) { - super({ - testConnectionTimeout: config.testConnectionTimeout, - }); - const dataSource = config.dataSource || assertDataSource('default'); - + + super({ + testConnectionTimeout: config.testConnectionTimeout, + isTestConnectionDisabled: getEnv('dbDisableTestConnection', { dataSource }), + }); + this.config = { secretArn: config.secretArn || @@ -66,7 +67,11 @@ class AuroraServerlessMySqlDriver extends BaseDriver { } async testConnection() { - return this.dataApi.query('SELECT 1'); + if (this.isTestConnectionDisabled()) { + return; + } + + await this.dataApi.query('SELECT 1'); } positionBindings(sql) { diff --git a/packages/cubejs-postgres-driver/src/PostgresDriver.ts b/packages/cubejs-postgres-driver/src/PostgresDriver.ts index c3b5e1c4ad93c..4953a93d33b41 100644 --- a/packages/cubejs-postgres-driver/src/PostgresDriver.ts +++ b/packages/cubejs-postgres-driver/src/PostgresDriver.ts @@ -111,14 +111,15 @@ export class PostgresDriver { + if (this.isTestConnectionDisabled()) { + return; + } + try { await this.pool.query('SELECT $1::int AS number', ['1']); } catch (e) { diff --git a/packages/cubejs-snowflake-driver/src/SnowflakeDriver.ts b/packages/cubejs-snowflake-driver/src/SnowflakeDriver.ts index 8a4b893ef37dc..902fdeb6d9d0c 100644 --- a/packages/cubejs-snowflake-driver/src/SnowflakeDriver.ts +++ b/packages/cubejs-snowflake-driver/src/SnowflakeDriver.ts @@ -241,14 +241,15 @@ export class SnowflakeDriver extends BaseDriver implements DriverInterface { testConnectionTimeout?: number, } = {} ) { - super({ - testConnectionTimeout: config.testConnectionTimeout, - }); - const dataSource = config.dataSource || assertDataSource('default'); + super({ + testConnectionTimeout: config.testConnectionTimeout, + isTestConnectionDisabled: getEnv('dbDisableTestConnection', { dataSource }), + }); + let privateKey = getEnv('snowflakePrivateKey', { dataSource }); if (privateKey && !privateKey.endsWith('\n')) { privateKey += '\n'; @@ -420,6 +421,10 @@ export class SnowflakeDriver extends BaseDriver implements DriverInterface { * Test driver's connection. */ public async testConnection() { + if (this.isTestConnectionDisabled()) { + return; + } + const connection = await this.createConnection(); await new Promise(