From 9554b1a8e34d459008ad37a9f523e41cdab99ddc Mon Sep 17 00:00:00 2001 From: Marko Date: Tue, 28 Oct 2025 13:29:45 +0100 Subject: [PATCH] Ensure proper cleanup of the database connection in `createSchema` (#5315) * Ensure proper cleanup of the database connection in `createSchema` method in `MySQLRecordManager`. * Update MySQLrecordManager.ts * Refactor createSchema to optimize dataSource usage Refactor createSchema method to avoid duplicate dataSource retrieval. * Refactor createSchema method for efficiency Refactor createSchema to avoid redundant dataSource retrieval. --------- Co-authored-by: Henry Heng --- .../recordmanager/MySQLRecordManager/MySQLrecordManager.ts | 4 +++- .../PostgresRecordManager/PostgresRecordManager.ts | 4 +++- .../recordmanager/SQLiteRecordManager/SQLiteRecordManager.ts | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/components/nodes/recordmanager/MySQLRecordManager/MySQLrecordManager.ts b/packages/components/nodes/recordmanager/MySQLRecordManager/MySQLrecordManager.ts index a1571b028..eb38144e7 100644 --- a/packages/components/nodes/recordmanager/MySQLRecordManager/MySQLrecordManager.ts +++ b/packages/components/nodes/recordmanager/MySQLRecordManager/MySQLrecordManager.ts @@ -205,8 +205,8 @@ class MySQLRecordManager implements RecordManagerInterface { } async createSchema(): Promise { + const dataSource = await this.getDataSource() try { - const dataSource = await this.getDataSource() const queryRunner = dataSource.createQueryRunner() const tableName = this.sanitizeTableName(this.tableName) @@ -241,6 +241,8 @@ class MySQLRecordManager implements RecordManagerInterface { return } throw e + } finally { + await dataSource.destroy() } } diff --git a/packages/components/nodes/recordmanager/PostgresRecordManager/PostgresRecordManager.ts b/packages/components/nodes/recordmanager/PostgresRecordManager/PostgresRecordManager.ts index cf239522f..ab4b564e8 100644 --- a/packages/components/nodes/recordmanager/PostgresRecordManager/PostgresRecordManager.ts +++ b/packages/components/nodes/recordmanager/PostgresRecordManager/PostgresRecordManager.ts @@ -222,8 +222,8 @@ class PostgresRecordManager implements RecordManagerInterface { } async createSchema(): Promise { + const dataSource = await this.getDataSource() try { - const dataSource = await this.getDataSource() const queryRunner = dataSource.createQueryRunner() const tableName = this.sanitizeTableName(this.tableName) @@ -251,6 +251,8 @@ class PostgresRecordManager implements RecordManagerInterface { return } throw e + } finally { + await dataSource.destroy() } } diff --git a/packages/components/nodes/recordmanager/SQLiteRecordManager/SQLiteRecordManager.ts b/packages/components/nodes/recordmanager/SQLiteRecordManager/SQLiteRecordManager.ts index c209f4956..4b7376041 100644 --- a/packages/components/nodes/recordmanager/SQLiteRecordManager/SQLiteRecordManager.ts +++ b/packages/components/nodes/recordmanager/SQLiteRecordManager/SQLiteRecordManager.ts @@ -179,8 +179,8 @@ class SQLiteRecordManager implements RecordManagerInterface { } async createSchema(): Promise { + const dataSource = await this.getDataSource() try { - const dataSource = await this.getDataSource() const queryRunner = dataSource.createQueryRunner() const tableName = this.sanitizeTableName(this.tableName) @@ -208,6 +208,8 @@ CREATE INDEX IF NOT EXISTS group_id_index ON "${tableName}" (group_id);`) return } throw e + } finally { + await dataSource.destroy() } }