fix(core): Ensure pruning starts only after migrations have completed (#7626)

https://linear.app/n8n/issue/PAY-986/bug-execution-pruning-timer-is-started-before-the-database-is-ready

---------

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
This commit is contained in:
Iván Ovejero
2023-11-07 13:56:01 +01:00
committed by GitHub
parent c857e42677
commit f748de9567
3 changed files with 13 additions and 8 deletions

View File

@@ -65,6 +65,8 @@ export class Start extends BaseCommand {
protected server = new Server();
private pruningService: PruningService;
constructor(argv: string[], cmdConfig: IConfig) {
super(argv, cmdConfig);
this.setInstanceType('main');
@@ -110,9 +112,9 @@ export class Start extends BaseCommand {
// Note: While this saves a new license cert to DB, the previous entitlements are still kept in memory so that the shutdown process can complete
await Container.get(License).shutdown();
const pruningService = Container.get(PruningService);
if (await pruningService.isPruningEnabled()) await pruningService.stopPruning();
if (await this.pruningService.isPruningEnabled()) {
await this.pruningService.stopPruning();
}
if (config.getEnv('leaderSelection.enabled')) {
const { MultiMainInstancePublisher } = await import(
@@ -342,6 +344,11 @@ export class Start extends BaseCommand {
await this.server.start();
this.pruningService = Container.get(PruningService);
if (await this.pruningService.isPruningEnabled()) {
this.pruningService.startPruning();
}
// Start to get active workflows and run their triggers
await this.activeWorkflowRunner.init();