Skip to content

Commit b793f4a

Browse files
committed
fix: Dialect class isn't looked up for external drivers
1 parent 7f44f9f commit b793f4a

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

packages/cubejs-schema-compiler/adapter/QueryBuilder.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,17 @@ exports.query = (compilers, dbType, queryOptions) => {
3838
return null;
3939
}
4040

41+
let externalQueryClass = queryOptions.externalDialectClass;
42+
43+
if (!externalQueryClass) {
44+
if (!ADAPTERS[queryOptions.externalDbType]) {
45+
throw new Error(`Dialect for '${queryOptions.externalDbType}' is not found`);
46+
}
47+
externalQueryClass = queryOptions.externalDbType && ADAPTERS[queryOptions.externalDbType];
48+
}
49+
4150
return new (queryOptions.dialectClass || ADAPTERS[dbType])(compilers, {
4251
...queryOptions,
43-
externalQueryClass: queryOptions.externalDialectClass ||
44-
queryOptions.externalDbType && ADAPTERS[queryOptions.externalDbType]
52+
externalQueryClass
4553
});
4654
};

packages/cubejs-server-core/core/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@ class CubejsServerCore {
168168
password: process.env.CUBEJS_EXT_DB_PASS,
169169
})
170170
),
171+
externalDialectFactory: () => typeof options.externalDbType === 'string' &&
172+
CubejsServerCore.lookupDriverClass(options.externalDbType).dialectClass &&
173+
CubejsServerCore.lookupDriverClass(options.externalDbType).dialectClass(),
171174
externalDbType: process.env.CUBEJS_EXT_DB_TYPE,
172175
apiSecret: process.env.CUBEJS_API_SECRET,
173176
dbType: process.env.CUBEJS_DB_TYPE,

0 commit comments

Comments
 (0)