From 7c165511a1fb1866b51831634d7ea694f68e680c Mon Sep 17 00:00:00 2001 From: Pranav C Date: Sun, 27 Oct 2024 08:37:51 +0000 Subject: [PATCH] feat: use better junction table name and column names --- .../nocodb/src/services/columns.service.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/nocodb/src/services/columns.service.ts b/packages/nocodb/src/services/columns.service.ts index 4f40fabd56..10dcb764d0 100644 --- a/packages/nocodb/src/services/columns.service.ts +++ b/packages/nocodb/src/services/columns.service.ts @@ -135,6 +135,18 @@ async function reuseOrSave( return res; } +function getJunctionTableName( + param: { + base: Base; + }, + parent: Model, + child: Model, +) { + return `${param.base?.prefix ?? ''}_nc_m2m_${parent.table_name}_${ + child.table_name + }`; +} + @Injectable() export class ColumnsService { constructor( @@ -3266,7 +3278,7 @@ export class ColumnsService { param.colExtra, ); } else if ((param.column as LinkToAnotherColumnReqType).type === 'mm') { - const aTn = `${param.base?.prefix ?? ''}_nc_m2m_${randomID()}`; + const aTn = getJunctionTableName(param, parent, child); const aTnAlias = aTn; const parentPK = parent.primaryKey; @@ -3274,8 +3286,8 @@ export class ColumnsService { const associateTableCols = []; - const parentCn = 'table1_id'; - const childCn = 'table2_id'; + const parentCn = `${parent.table_name}_id`; + const childCn = `${child.table_name}_id`; associateTableCols.push( {