mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
Run vacuum on sqlite periodically
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
|||||||
ActiveWorkflowRunner,
|
ActiveWorkflowRunner,
|
||||||
CredentialsOverwrites,
|
CredentialsOverwrites,
|
||||||
CredentialTypes,
|
CredentialTypes,
|
||||||
|
DatabaseType,
|
||||||
Db,
|
Db,
|
||||||
ExternalHooks,
|
ExternalHooks,
|
||||||
GenericHelpers,
|
GenericHelpers,
|
||||||
@@ -156,6 +157,18 @@ export class Start extends Command {
|
|||||||
// Wait till the database is ready
|
// Wait till the database is ready
|
||||||
await startDbInitPromise;
|
await startDbInitPromise;
|
||||||
|
|
||||||
|
const dbType = await GenericHelpers.getConfigValue('database.type') as DatabaseType;
|
||||||
|
|
||||||
|
if (dbType === 'sqlite') {
|
||||||
|
const vacuumInterval = config.get('database.sqlite.vacuumInterval') as number;
|
||||||
|
if (vacuumInterval >= 0) {
|
||||||
|
Db.collections.Execution!.query("VACUUM;");
|
||||||
|
if (vacuumInterval > 0) {
|
||||||
|
setInterval(() => Db.collections.Execution!.query("VACUUM;"), vacuumInterval * 1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (flags.tunnel === true) {
|
if (flags.tunnel === true) {
|
||||||
this.log('\nWaiting for tunnel ...');
|
this.log('\nWaiting for tunnel ...');
|
||||||
|
|
||||||
|
|||||||
@@ -124,6 +124,14 @@ const config = convict({
|
|||||||
env: 'DB_MYSQLDB_USER',
|
env: 'DB_MYSQLDB_USER',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
sqlite: {
|
||||||
|
vacuumInterval: {
|
||||||
|
doc: 'SQLite Vacuum operation interval',
|
||||||
|
format: Number,
|
||||||
|
default: 86400, // Given in seconds; -1 disables. 0 executes only at startup.
|
||||||
|
env: 'DB_SQLITE_VACUUM_INTERVAL',
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
credentials: {
|
credentials: {
|
||||||
|
|||||||
Reference in New Issue
Block a user