From 781a1de8f489a6dc19e58922ed8fba490bd2fab9 Mon Sep 17 00:00:00 2001 From: Weiko Date: Thu, 26 Oct 2023 12:20:03 +0200 Subject: [PATCH] Fix custom object requests pending (#2240) * Fix custom object requests pending * fix typo --- .../migration-runner/migration-runner.service.ts | 14 +++++++++++--- .../tenant-initialisation.service.ts | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/server/src/metadata/migration-runner/migration-runner.service.ts b/server/src/metadata/migration-runner/migration-runner.service.ts index 094e0d81a..35d736e3b 100644 --- a/server/src/metadata/migration-runner/migration-runner.service.ts +++ b/server/src/metadata/migration-runner/migration-runner.service.ts @@ -45,19 +45,20 @@ export class MigrationRunnerService { // Loop over each migration and create or update the table // TODO: Should be done in a transaction - for (const migration of flattenedPendingMigrations) { await this.handleTableChanges(queryRunner, schemaName, migration); } // Update appliedAt date for each migration // TODO: Should be done after the migration is successful - pendingMigrations.forEach(async (pendingMigration) => { + for (const pendingMigration of pendingMigrations) { await this.tenantMigrationService.setAppliedAtForMigration( workspaceId, pendingMigration, ); - }); + } + + await queryRunner.release(); return flattenedPendingMigrations; } @@ -188,6 +189,13 @@ export class MigrationRunnerService { tableName: string, migrationColumn: TenantMigrationColumnAction, ) { + const hasColumn = await queryRunner.hasColumn( + `${schemaName}.${tableName}`, + migrationColumn.name, + ); + if (hasColumn) { + return; + } await queryRunner.addColumn( `${schemaName}.${tableName}`, new TableColumn({ diff --git a/server/src/metadata/tenant-initialisation/tenant-initialisation.service.ts b/server/src/metadata/tenant-initialisation/tenant-initialisation.service.ts index 8d2f8d2a9..37943de6a 100644 --- a/server/src/metadata/tenant-initialisation/tenant-initialisation.service.ts +++ b/server/src/metadata/tenant-initialisation/tenant-initialisation.service.ts @@ -107,7 +107,7 @@ export class TenantInitialisationService { dataSourceMetadata.id, ); - const worksapceDataSource = + const workspaceDataSource = await this.dataSourceService.connectToWorkspaceDataSource(workspaceId); for (const object of objects) { @@ -123,7 +123,7 @@ export class TenantInitialisationService { Object.values(field.targetColumnMap), ); - worksapceDataSource + await workspaceDataSource ?.createQueryBuilder() .insert() .into(`${dataSourceMetadata.schema}.${object.targetTableName}`, columns)