diff --git a/packages/nocodb/src/lib/noco/NcProjectBuilder.ts b/packages/nocodb/src/lib/noco/NcProjectBuilder.ts index 597b242b8c..ef5ba67696 100644 --- a/packages/nocodb/src/lib/noco/NcProjectBuilder.ts +++ b/packages/nocodb/src/lib/noco/NcProjectBuilder.ts @@ -119,6 +119,7 @@ export default class NcProjectBuilder { case 'xcVirtualRelationCreate': + await curBuilder.onVirtualRelationCreate(data.req.args.parentTable, data.req.args.childTable); await curBuilder.onRelationCreate(data.req.args.parentTable, data.req.args.childTable, { ...data.req.args, virtual: true diff --git a/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts b/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts index b67dd085b1..8c5259ce79 100644 --- a/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts +++ b/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts @@ -726,6 +726,16 @@ export default abstract class BaseApiBuilder implements XcDynami }); } + public async onVirtualRelationCreate(parentTable: string, childTable: string): Promise { + return this.xcMeta.metaUpdate(this.projectId, this.dbAlias, 'nc_relations', { + _tn: this.getTableNameAlias(childTable), + _rtn: this.getTableNameAlias(parentTable), + }, { + tn: childTable, + rtn: parentTable, + }); + } + protected async loadCommon(): Promise { this.baseLog(`loadCommon :`);