[fix] Increment cache version after object/field/relation update (#5316)

Fixes #5276.

Updates were not triggering a cache version incrementation because they
do not trigger migrations while that is where the caching version logic
was.
We have decided to move the cache incrementation logic to the services.
This commit is contained in:
Marie
2024-05-07 16:30:25 +02:00
committed by GitHub
parent b0d1cc9dcb
commit 7c3e82870c
22 changed files with 160 additions and 39 deletions

View File

@ -15,6 +15,7 @@ import { WorkspaceSyncObjectMetadataService } from 'src/engine/workspace-manager
import { WorkspaceSyncRelationMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-relation-metadata.service';
import { WorkspaceSyncFieldMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-field-metadata.service';
import { WorkspaceMigrationBuilderModule } from 'src/engine/workspace-manager/workspace-migration-builder/workspace-migration-builder.module';
import { WorkspaceCacheVersionModule } from 'src/engine/metadata-modules/workspace-cache-version/workspace-cache-version.module';
@Module({
imports: [
@ -30,6 +31,7 @@ import { WorkspaceMigrationBuilderModule } from 'src/engine/workspace-manager/wo
'metadata',
),
TypeOrmModule.forFeature([FeatureFlagEntity], 'core'),
WorkspaceCacheVersionModule,
],
providers: [
...workspaceSyncMetadataFactories,

View File

@ -12,6 +12,7 @@ import { WorkspaceSyncRelationMetadataService } from 'src/engine/workspace-manag
import { WorkspaceSyncFieldMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-field-metadata.service';
import { WorkspaceSyncStorage } from 'src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage';
import { WorkspaceMigrationEntity } from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
import { WorkspaceCacheVersionService } from 'src/engine/metadata-modules/workspace-cache-version/workspace-cache-version.service';
interface SynchronizeOptions {
applyChanges?: boolean;
@ -29,6 +30,7 @@ export class WorkspaceSyncMetadataService {
private readonly workspaceSyncObjectMetadataService: WorkspaceSyncObjectMetadataService,
private readonly workspaceSyncRelationMetadataService: WorkspaceSyncRelationMetadataService,
private readonly workspaceSyncFieldMetadataService: WorkspaceSyncFieldMetadataService,
private readonly workspaceCacheVersionService: WorkspaceCacheVersionService,
) {}
/**
@ -127,6 +129,9 @@ export class WorkspaceSyncMetadataService {
await queryRunner.rollbackTransaction();
} finally {
await queryRunner.release();
await this.workspaceCacheVersionService.incrementVersion(
context.workspaceId,
);
}
return {