driver plugins supports more drivers. Added derived drivers for MariaDB, CockroachDB, Amazon Redshift

This commit is contained in:
Jan Prochazka
2021-05-15 08:49:58 +02:00
parent f9545eaf7f
commit c5605d63ca
17 changed files with 62 additions and 31 deletions

View File

@@ -2,7 +2,7 @@ const _ = require('lodash');
const stream = require('stream');
const { identify } = require('sql-query-identifier');
const driverBase = require('../frontend/driver');
const driverBases = require('../frontend/drivers');
const Analyser = require('./Analyser');
const pg = require('pg');
const pgQueryStream = require('pg-query-stream');
@@ -93,7 +93,7 @@ async function runStreamItem(client, sql, options) {
}
/** @type {import('dbgate-types').EngineDriver} */
const driver = {
const drivers = driverBases.map(driverBase => ({
...driverBase,
analyserClass: Analyser,
@@ -220,6 +220,6 @@ const driver = {
const { rows } = await this.query(client, 'SELECT datname AS name FROM pg_database WHERE datistemplate = false');
return rows;
},
};
}));
module.exports = driver;
module.exports = drivers;

View File

@@ -1,6 +1,6 @@
const driver = require('./driver');
const drivers = require('./drivers');
module.exports = {
packageName: 'dbgate-plugin-postgres',
driver,
drivers,
};

View File

@@ -15,7 +15,7 @@ const dialect = {
};
/** @type {import('dbgate-types').EngineDriver} */
const driver = {
const postgresDriver = {
...driverBase,
dumperClass: Dumper,
dialect,
@@ -24,4 +24,24 @@ const driver = {
defaultPort: 5432,
};
module.exports = driver;
/** @type {import('dbgate-types').EngineDriver} */
const cockroachDriver = {
...driverBase,
dumperClass: Dumper,
dialect,
engine: 'cockroach@dbgate-plugin-postgres',
title: 'CockroachDB',
defaultPort: 26257,
};
/** @type {import('dbgate-types').EngineDriver} */
const redshiftDriver = {
...driverBase,
dumperClass: Dumper,
dialect,
engine: 'red@dbgate-plugin-postgres',
title: 'Amazon Redshift',
defaultPort: 5432,
};
module.exports = [postgresDriver, cockroachDriver, redshiftDriver];

View File

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