mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-17 23:45:59 +00:00
redis: support readonly and database url
This commit is contained in:
@@ -80,16 +80,22 @@ function splitCommandLine(str) {
|
||||
const driver = {
|
||||
...driverBase,
|
||||
analyserClass: Analyser,
|
||||
async connect({ server, port, password, database }) {
|
||||
async connect({ server, port, password, database, useDatabaseUrl, databaseUrl }) {
|
||||
let db = 0;
|
||||
if (_.isString(database) && database.startsWith('db')) db = parseInt(database.substring(2));
|
||||
if (_.isNumber(database)) db = database;
|
||||
const pool = new Redis({
|
||||
host: server,
|
||||
port,
|
||||
password,
|
||||
db,
|
||||
});
|
||||
let pool;
|
||||
if (useDatabaseUrl) {
|
||||
pool = new Redis(databaseUrl);
|
||||
} else {
|
||||
if (_.isString(database) && database.startsWith('db')) db = parseInt(database.substring(2));
|
||||
if (_.isNumber(database)) db = database;
|
||||
pool = new Redis({
|
||||
host: server,
|
||||
port,
|
||||
password,
|
||||
db,
|
||||
});
|
||||
}
|
||||
|
||||
return pool;
|
||||
},
|
||||
// @ts-ignore
|
||||
|
||||
@@ -26,6 +26,7 @@ const driver = {
|
||||
databaseEngineTypes: ['keyvalue'],
|
||||
supportedCreateDatabase: false,
|
||||
getQuerySplitterOptions: () => redisSplitterOptions,
|
||||
databaseUrlPlaceholder: 'e.g. redis://:authpassword@127.0.0.1:6380/4',
|
||||
supportedKeyTypes: [
|
||||
{
|
||||
name: 'string',
|
||||
@@ -75,7 +76,11 @@ const driver = {
|
||||
],
|
||||
|
||||
showConnectionField: (field, values) => {
|
||||
return ['server', 'port', 'password'].includes(field);
|
||||
if (field == 'useDatabaseUrl') return true;
|
||||
if (values.useDatabaseUrl) {
|
||||
return ['databaseUrl', 'isReadOnly'].includes(field);
|
||||
}
|
||||
return ['server', 'port', 'password', 'isReadOnly'].includes(field);
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user