oracle thick mode support #843

This commit is contained in:
Jan Prochazka
2024-07-31 11:20:31 +02:00
parent faf6339b41
commit 5e68ce3218
11 changed files with 75 additions and 39 deletions

View File

@@ -82,10 +82,15 @@ const dialect = {
},
};
const oracleDriverBase = {
...driverBase,
dumperClass: Dumper,
/** @type {import('dbgate-types').EngineDriver} */
const oracleDriver = {
engine: 'oracle@dbgate-plugin-oracle',
title: 'OracleDB',
defaultPort: 1521,
authTypeLabel: 'Driver mode',
defaultAuthTypeName: 'thin',
dialect,
dumperClass: Dumper,
// showConnectionField: (field, values) =>
// ['server', 'port', 'user', 'password', 'defaultDatabase', 'singleDatabase'].includes(field),
getQuerySplitterOptions: () => oracleSplitterOptions,
@@ -93,8 +98,12 @@ const oracleDriverBase = {
databaseUrlPlaceholder: 'e.g. localhost:1521/orcl',
showConnectionField: (field, values) => {
if (field == 'useDatabaseUrl') return true;
if (field == 'authType') return true;
if (field == 'clientLibraryPath') return values.authType == 'thick';
if (values.useDatabaseUrl) {
return ['databaseUrl', 'user', 'password'].includes(field);
}
@@ -126,18 +135,6 @@ $$ LANGUAGE plpgsql;`,
},
];
},
};
/** @type {import('dbgate-types').EngineDriver} */
const oracleDriver = {
...oracleDriverBase,
engine: 'oracle@dbgate-plugin-oracle',
title: 'OracleDB',
defaultPort: 1521,
dialect: {
...dialect,
materializedViews: true,
},
dialectByVersion(version) {
if (version) {
@@ -156,4 +153,4 @@ const oracleDriver = {
showConnectionTab: field => field == 'sshTunnel',
};
module.exports = [oracleDriver];
module.exports = oracleDriver;

View File

@@ -1,6 +1,6 @@
import drivers from './drivers';
import driver from './driver';
export default {
packageName: 'dbgate-plugin-oracle',
drivers,
drivers: [driver],
};