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 { InjectRepository } from '@nestjs/typeorm';
import assert from 'assert'; 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 // eslint-disable-next-line @nx/workspace-inject-workspace-repository
export class WorkspaceService extends TypeOrmQueryService<Workspace> { export class WorkspaceService extends TypeOrmQueryService<Workspace> {
private readonly featureLookUpKey = BillingEntitlementKey.CUSTOM_DOMAIN; private readonly featureLookUpKey = BillingEntitlementKey.CUSTOM_DOMAIN;
protected readonly logger = new Logger(WorkspaceService.name);
constructor( constructor(
@InjectRepository(Workspace, 'core') @InjectRepository(Workspace, 'core')
@ -298,6 +299,12 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
} }
async deleteWorkspace(id: string, softDelete = false) { 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({ const workspace = await this.workspaceRepository.findOne({
where: { id }, where: { id },
withDeleted: true, withDeleted: true,
@ -328,6 +335,8 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
if (softDelete) { if (softDelete) {
await this.workspaceRepository.softDelete({ id }); await this.workspaceRepository.softDelete({ id });
this.logger.log(`workspace ${id} soft deleted`);
return workspace; return workspace;
} }
@ -339,6 +348,8 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
); );
await this.workspaceRepository.delete(id); await this.workspaceRepository.delete(id);
this.logger.log(`workspace ${id} hard deleted`);
return workspace; return workspace;
} }

View File

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