mirror of
https://github.com/umami-software/umami.git
synced 2026-02-10 07:37:11 +01:00
Refactor get database type logic.
This commit is contained in:
parent
b29cece7ef
commit
3327bcf5a3
4 changed files with 36 additions and 23 deletions
20
lib/db.js
20
lib/db.js
|
|
@ -1,39 +1,31 @@
|
|||
import { POSTGRESQL, RELATIONAL, MYSQL, KAFKA } from 'lib/constants';
|
||||
import { CLICKHOUSE } from 'lib/constants';
|
||||
import { POSTGRESQL, RELATIONAL, MYSQL, KAFKA, CLICKHOUSE } from 'lib/constants';
|
||||
|
||||
BigInt.prototype.toJSON = function () {
|
||||
return Number(this);
|
||||
};
|
||||
|
||||
export function getDatabase(database, databaseType, fallback) {
|
||||
const type = databaseType || (database && database.split(':')[0]);
|
||||
export function getDatabaseType(url = process.env.DATABASE_URL) {
|
||||
const type = process.env.DATABASE_TYPE || (url && url.split(':')[0]);
|
||||
|
||||
if (type === 'postgres') {
|
||||
return POSTGRESQL;
|
||||
}
|
||||
|
||||
if (!type) {
|
||||
if (fallback) {
|
||||
return getDatabase(fallback);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
export async function runAnalyticsQuery(queries) {
|
||||
const db = getDatabase(process.env.ANALYTICS_URL, null, process.env.DATABASE_URL);
|
||||
const db = getDatabaseType(process.env.ANALYTICS_URL || process.env.DATABASE_URL);
|
||||
|
||||
if (db === POSTGRESQL || db === MYSQL) {
|
||||
return queries[RELATIONAL]();
|
||||
}
|
||||
|
||||
if (db === CLICKHOUSE) {
|
||||
const kafka = getDatabase(process.env.KAFKA_URL);
|
||||
if (kafka === KAFKA && queries[KAFKA]) {
|
||||
if (queries[KAFKA]) {
|
||||
return queries[KAFKA]();
|
||||
}
|
||||
|
||||
return queries[CLICKHOUSE]();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue