add temporary log to investigate on deletion logic (#10955)

related to
[611](https://github.com/twentyhq/core-team-issues/issues/611)
This commit is contained in:
Etienne
2025-03-17 17:13:01 +01:00
committed by GitHub
parent b4ec00088b
commit 2be26ecc98
2 changed files with 28 additions and 1 deletions

View File

@ -1,4 +1,4 @@
import { BadRequestException, Injectable } from '@nestjs/common';
import { BadRequestException, Injectable, Logger } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import assert from 'assert';
@ -49,6 +49,7 @@ import { extractVersionMajorMinorPatch } from 'src/utils/version/extract-version
// eslint-disable-next-line @nx/workspace-inject-workspace-repository
export class WorkspaceService extends TypeOrmQueryService<Workspace> {
private readonly featureLookUpKey = BillingEntitlementKey.CUSTOM_DOMAIN;
protected readonly logger = new Logger(WorkspaceService.name);
constructor(
@InjectRepository(Workspace, 'core')
@ -298,6 +299,12 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
}
async deleteWorkspace(id: string, softDelete = false) {
//TODO: delete all logs when #611 closed
this.logger.log(
`${softDelete ? 'Soft' : 'Hard'} deleting workspace ${id} ...`,
);
const workspace = await this.workspaceRepository.findOne({
where: { id },
withDeleted: true,
@ -328,6 +335,8 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
if (softDelete) {
await this.workspaceRepository.softDelete({ id });
this.logger.log(`workspace ${id} soft deleted`);
return workspace;
}
@ -339,6 +348,8 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
);
await this.workspaceRepository.delete(id);
this.logger.log(`workspace ${id} hard deleted`);
return workspace;
}

View File

@ -254,25 +254,41 @@ export class WorkspaceManagerService {
* @param workspaceId
*/
public async delete(workspaceId: string): Promise<void> {
//TODO: delete all logs when #611 closed
this.logger.log(`Deleting workspace ${workspaceId} ...`);
// Delete data from metadata tables
await this.relationMetadataRepository.delete({
workspaceId,
});
this.logger.log(`workspace ${workspaceId} relation metadata deleted`);
await this.fieldMetadataRepository.delete({
workspaceId,
});
this.logger.log(`workspace ${workspaceId} field metadata deleted`);
await this.userWorkspaceRoleRepository.delete({
workspaceId,
});
this.logger.log(`workspace ${workspaceId} user workspace role deleted`);
await this.roleRepository.delete({
workspaceId,
});
this.logger.log(`workspace ${workspaceId} role deleted`);
await this.objectMetadataService.deleteObjectsMetadata(workspaceId);
this.logger.log(`workspace ${workspaceId} object metadata deleted`);
await this.workspaceMigrationService.deleteAllWithinWorkspace(workspaceId);
this.logger.log(`workspace ${workspaceId} migration deleted`);
await this.dataSourceService.delete(workspaceId);
this.logger.log(`workspace ${workspaceId} data source deleted`);
// Delete schema
await this.workspaceDataSourceService.deleteWorkspaceDBSchema(workspaceId);
this.logger.log(`workspace ${workspaceId} schema deleted`);
}
private async initPermissions({