mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
refactor: consolidate database configs (#4522)
* consolidate db configs * allow using custom file-name for the sqlite db * remove the unused `logging` config. it's overwritten in Db.ts
This commit is contained in:
committed by
GitHub
parent
40e413d958
commit
eb3fffd203
@@ -4,7 +4,6 @@
|
||||
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
||||
/* eslint-disable no-case-declarations */
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
import { UserSettings } from 'n8n-core';
|
||||
import {
|
||||
Connection,
|
||||
ConnectionOptions,
|
||||
@@ -17,7 +16,6 @@ import {
|
||||
Repository,
|
||||
} from 'typeorm';
|
||||
import { TlsOptions } from 'tls';
|
||||
import path from 'path';
|
||||
// eslint-disable-next-line import/no-cycle
|
||||
import { DatabaseType, GenericHelpers, IDatabaseCollections } from '.';
|
||||
|
||||
@@ -25,10 +23,13 @@ import config from '../config';
|
||||
|
||||
// eslint-disable-next-line import/no-cycle
|
||||
import { entities } from './databases/entities';
|
||||
|
||||
import { postgresMigrations } from './databases/migrations/postgresdb';
|
||||
import { mysqlMigrations } from './databases/migrations/mysqldb';
|
||||
import { sqliteMigrations } from './databases/migrations/sqlite';
|
||||
import {
|
||||
getMariaDBConnectionOptions,
|
||||
getMysqlConnectionOptions,
|
||||
getOptionOverrides,
|
||||
getPostgresConnectionOptions,
|
||||
getSqliteConnectionOptions,
|
||||
} from './databases/config';
|
||||
|
||||
export let isInitialized = false;
|
||||
export const collections = {} as IDatabaseCollections;
|
||||
@@ -51,7 +52,6 @@ export async function init(
|
||||
if (isInitialized) return collections;
|
||||
|
||||
const dbType = (await GenericHelpers.getConfigValue('database.type')) as DatabaseType;
|
||||
const n8nFolder = UserSettings.getUserN8nFolderPath();
|
||||
|
||||
let connectionOptions: ConnectionOptions;
|
||||
|
||||
@@ -84,17 +84,8 @@ export async function init(
|
||||
}
|
||||
|
||||
connectionOptions = {
|
||||
type: 'postgres',
|
||||
entityPrefix,
|
||||
database: (await GenericHelpers.getConfigValue('database.postgresdb.database')) as string,
|
||||
host: (await GenericHelpers.getConfigValue('database.postgresdb.host')) as string,
|
||||
password: (await GenericHelpers.getConfigValue('database.postgresdb.password')) as string,
|
||||
port: (await GenericHelpers.getConfigValue('database.postgresdb.port')) as number,
|
||||
username: (await GenericHelpers.getConfigValue('database.postgresdb.user')) as string,
|
||||
schema: config.getEnv('database.postgresdb.schema'),
|
||||
migrations: postgresMigrations,
|
||||
migrationsRun: true,
|
||||
migrationsTableName: `${entityPrefix}migrations`,
|
||||
...getPostgresConnectionOptions(),
|
||||
...(await getOptionOverrides('postgresdb')),
|
||||
ssl,
|
||||
};
|
||||
|
||||
@@ -103,29 +94,14 @@ export async function init(
|
||||
case 'mariadb':
|
||||
case 'mysqldb':
|
||||
connectionOptions = {
|
||||
type: dbType === 'mysqldb' ? 'mysql' : 'mariadb',
|
||||
database: (await GenericHelpers.getConfigValue('database.mysqldb.database')) as string,
|
||||
entityPrefix,
|
||||
host: (await GenericHelpers.getConfigValue('database.mysqldb.host')) as string,
|
||||
password: (await GenericHelpers.getConfigValue('database.mysqldb.password')) as string,
|
||||
port: (await GenericHelpers.getConfigValue('database.mysqldb.port')) as number,
|
||||
username: (await GenericHelpers.getConfigValue('database.mysqldb.user')) as string,
|
||||
migrations: mysqlMigrations,
|
||||
migrationsRun: true,
|
||||
migrationsTableName: `${entityPrefix}migrations`,
|
||||
...(dbType === 'mysqldb' ? getMysqlConnectionOptions() : getMariaDBConnectionOptions()),
|
||||
...(await getOptionOverrides('mysqldb')),
|
||||
timezone: 'Z', // set UTC as default
|
||||
};
|
||||
break;
|
||||
|
||||
case 'sqlite':
|
||||
connectionOptions = {
|
||||
type: 'sqlite',
|
||||
database: path.join(n8nFolder, 'database.sqlite'),
|
||||
entityPrefix,
|
||||
migrations: sqliteMigrations,
|
||||
migrationsRun: false, // migrations for sqlite will be ran manually for now; see below
|
||||
migrationsTableName: `${entityPrefix}migrations`,
|
||||
};
|
||||
connectionOptions = getSqliteConnectionOptions();
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -149,13 +125,15 @@ export async function init(
|
||||
}
|
||||
}
|
||||
|
||||
const maxQueryExecutionTime = (await GenericHelpers.getConfigValue(
|
||||
'database.logging.maxQueryExecutionTime',
|
||||
)) as string;
|
||||
|
||||
Object.assign(connectionOptions, {
|
||||
entities: Object.values(entities),
|
||||
synchronize: false,
|
||||
logging: loggingOption,
|
||||
maxQueryExecutionTime: (await GenericHelpers.getConfigValue(
|
||||
'database.logging.maxQueryExecutionTime',
|
||||
)) as string,
|
||||
maxQueryExecutionTime,
|
||||
});
|
||||
|
||||
connection = await createConnection(connectionOptions);
|
||||
|
||||
Reference in New Issue
Block a user