diff --git a/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts b/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts index 147820db67..f3121b571d 100644 --- a/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts +++ b/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts @@ -726,6 +726,9 @@ export default abstract class BaseApiBuilder this.baseLog(`onTableUpdate : Getting old model meta for '%s'`, tn); XcCache.del([this.projectId, this.dbAlias, 'table', tn].join('::')); + // get columns list from db + const columnsFromDb = await this.getColumnList(tn); + const relationTableMetas: Set = new Set(); const oldModelRow = await this.xcMeta.metaGet( @@ -752,8 +755,11 @@ export default abstract class BaseApiBuilder const columns = changeObj.columns .filter(c => c.altered !== 4) - .map(({ altered: _al, ...rest }) => rest) || - (await this.getColumnList(tn)); + .map(({ altered: _al, ...rest }) => ({ + ...rest, + // find and overwrite column property from db + ...(columnsFromDb?.find(c => c.cn === rest.cn) || {}) + })) || (await this.getColumnList(tn)); /* Get all relations */ const relations = await this.relationsSyncAndGet(); diff --git a/packages/nocodb/src/lib/noco/gql/GqlApiBuilder.ts b/packages/nocodb/src/lib/noco/gql/GqlApiBuilder.ts index 192e67cd77..111b3635bb 100644 --- a/packages/nocodb/src/lib/noco/gql/GqlApiBuilder.ts +++ b/packages/nocodb/src/lib/noco/gql/GqlApiBuilder.ts @@ -190,9 +190,18 @@ export class GqlApiBuilder extends BaseApiBuilder implements XcMetaMgr { await super.onTableCreate(tn, args); - const columns = { - [tn]: args?.columns?.map(({ altered: _al, ...rest }) => rest) - }; + // get columns list from db + const columnsFromDb = await this.getColumnList(tn); + + const columns = args.columns + ? { + [tn]: args.columns?.map(({ altered: _al, ...rest }) => ({ + ...rest, + // find and overwrite column property from db + ...columnsFromDb?.find(c => c.cn === rest.cn) + })) + } + : {}; await this.xcTablesPopulate({ tableNames: [{ tn, _tn: args._tn }], diff --git a/packages/nocodb/src/lib/noco/rest/RestApiBuilder.ts b/packages/nocodb/src/lib/noco/rest/RestApiBuilder.ts index ee0b0d383d..6468e277a1 100644 --- a/packages/nocodb/src/lib/noco/rest/RestApiBuilder.ts +++ b/packages/nocodb/src/lib/noco/rest/RestApiBuilder.ts @@ -876,9 +876,16 @@ export class RestApiBuilder extends BaseApiBuilder { ): Promise { await super.onTableCreate(tn, args); + // get columns list from db + const columnsFromDb = await this.getColumnList(tn); + const columns = args.columns ? { - [tn]: args.columns?.map(({ altered: _al, ...rest }) => rest) + [tn]: args.columns?.map(({ altered: _al, ...rest }) => ({ + ...rest, + // find and overwrite column property from db + ...(columnsFromDb?.find(c => c.cn === rest.cn) || {}) + })) } : {};