Browse Source

refactor: limit table name length

pull/9733/head
Pranav C 1 month ago
parent
commit
a72e59e7c1
  1. 37
      packages/nocodb/src/services/columns.service.ts

37
packages/nocodb/src/services/columns.service.ts

@ -135,16 +135,39 @@ async function reuseOrSave(
return res; return res;
} }
function getJunctionTableName( async function getJunctionTableName(
param: { param: {
base: Base; base: Base;
}, },
parent: Model, parent: Model,
child: Model, child: Model,
) { ) {
return `${param.base?.prefix ?? ''}_nc_m2m_${parent.table_name}_${ const parentTable = param.base?.prefix
child.table_name ? parent.table_name.replace(`${param.base?.prefix}_`, '')
}`; : parent.table_name;
const childTable = param.base?.prefix
? child.table_name.replace(`${param.base?.prefix}_`, '')
: child.table_name;
const tableName = `${
param.base?.prefix ?? ''
}_nc_m2m_${parentTable.slice(0, 15)}_${childTable.slice(0, 15)}`;
let suffix: number = null;
// check table name avail or not, if not then add incremental suffix
while (
await Noco.ncMeta.metaGet2(
(parent as any).fk_workspace_id,
parent.base_id,
MetaTable.MODELS,
{
table_name: `${tableName}${suffix ?? ''}`,
source_id: parent.source_id,
},
)
) {
suffix = suffix ? suffix + 1 : 1;
}
return `${tableName}${suffix ?? ''}`;
} }
@Injectable() @Injectable()
@ -3278,7 +3301,7 @@ export class ColumnsService {
param.colExtra, param.colExtra,
); );
} else if ((param.column as LinkToAnotherColumnReqType).type === 'mm') { } else if ((param.column as LinkToAnotherColumnReqType).type === 'mm') {
const aTn = getJunctionTableName(param, parent, child); const aTn = await getJunctionTableName(param, parent, child);
const aTnAlias = aTn; const aTnAlias = aTn;
const parentPK = parent.primaryKey; const parentPK = parent.primaryKey;
@ -3286,8 +3309,8 @@ export class ColumnsService {
const associateTableCols = []; const associateTableCols = [];
const parentCn = `${parent.table_name}_id`; const parentCn = `${parent.table_name.slice(0, 30)}_id`;
const childCn = `${child.table_name}_id`; const childCn = `${child.table_name.slice(0, 30)}_id`;
associateTableCols.push( associateTableCols.push(
{ {

Loading…
Cancel
Save