connecting via socket for mysql and postgres #358

This commit is contained in:
Jan Prochazka
2022-09-08 14:23:13 +02:00
parent 5eda39cb62
commit 0293766bad
7 changed files with 84 additions and 14 deletions

View File

@@ -31,7 +31,20 @@ const drivers = driverBases.map(driverBase => ({
...driverBase,
analyserClass: Analyser,
async connect({ engine, server, port, user, password, database, databaseUrl, useDatabaseUrl, ssl, isReadOnly }) {
async connect({
engine,
server,
port,
user,
password,
database,
databaseUrl,
useDatabaseUrl,
ssl,
isReadOnly,
authType,
socketPath,
}) {
let options = null;
if (engine == 'redshift@dbgate-plugin-postgres') {
@@ -56,8 +69,8 @@ const drivers = driverBases.map(driverBase => ({
connectionString: databaseUrl,
}
: {
host: server,
port,
host: authType == 'socket' ? socketPath || driverBase.defaultSocketPath : server,
port: authType == 'socket' ? null : port,
user,
password,
database: database || 'postgres',
@@ -65,6 +78,8 @@ const drivers = driverBases.map(driverBase => ({
};
}
console.log('OPTIONS', options);
const client = new pg.Client(options);
await client.connect();
@@ -233,6 +248,19 @@ const drivers = driverBases.map(driverBase => ({
const { rows } = await this.query(client, 'SELECT datname AS name FROM pg_database WHERE datistemplate = false');
return rows;
},
getAuthTypes() {
return [
{
title: 'Host and port',
name: 'hostPort',
},
{
title: 'Socket',
name: 'socket',
},
];
},
}));
module.exports = drivers;