diff --git a/server/src/metadata/field-metadata/field-metadata.service.ts b/server/src/metadata/field-metadata/field-metadata.service.ts index b208e477e..06aa31b5d 100644 --- a/server/src/metadata/field-metadata/field-metadata.service.ts +++ b/server/src/metadata/field-metadata/field-metadata.service.ts @@ -56,6 +56,10 @@ export class FieldMetadataService extends TypeOrmQueryService, + @InjectRepository(FieldMetadataEntity, 'metadata') + private readonly fieldMetadataRepository: Repository, + + @InjectRepository(RelationMetadataEntity, 'metadata') + private readonly relationMetadataRepository: Repository, + private readonly dataSourceService: DataSourceService, private readonly typeORMService: TypeORMService, private readonly workspaceMigrationService: WorkspaceMigrationService, @@ -117,6 +130,86 @@ export class ObjectMetadataService extends TypeOrmQueryService { + if (fieldMetadata.type === FieldMetadataType.RELATION) { + acc[fieldMetadata.objectMetadataId] = fieldMetadata; + } + return acc; + }, + {}, + ); + + await this.relationMetadataRepository.save([ + { + workspaceId: record.workspaceId, + relationType: RelationMetadataType.ONE_TO_MANY, + fromObjectMetadataId: createdObjectMetadata.id, + toObjectMetadataId: activityTargetObjectMetadata.id, + fromFieldMetadataId: + activityTargetRelationFieldMetadataMap[createdObjectMetadata.id].id, + toFieldMetadataId: + activityTargetRelationFieldMetadataMap[ + activityTargetObjectMetadata.id + ].id, + }, + ]); + await this.workspaceMigrationService.createCustomMigration( createdObjectMetadata.workspaceId, [ @@ -124,6 +217,30 @@ export class ObjectMetadataService extends TypeOrmQueryService