From 7c0097f245b96d0221604121dd33c1c684c62793 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Thu, 4 Jan 2024 13:19:17 +0000 Subject: [PATCH] feat: created_at and updated_at column creation - WIP --- .../nocodb/src/services/columns.service.ts | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/packages/nocodb/src/services/columns.service.ts b/packages/nocodb/src/services/columns.service.ts index 515f25056e..22e3b71c38 100644 --- a/packages/nocodb/src/services/columns.service.ts +++ b/packages/nocodb/src/services/columns.service.ts @@ -1673,6 +1673,44 @@ export class ColumnsService { fk_model_id: table.id, }); + break; + case UITypes.CreateTime: + case UITypes.LastModifiedTime: + { + // check if column already exists, then just create a new column in meta + // else create a new column in meta and db + const existingColumn = await table.getColumns().then((col) => { + return col.find((c) => c.uidt === colBody.uidt); + }); + + if (!existingColumn) { + const sqlClient = await reuseOrSave('sqlClient', reuse, async () => + NcConnectionMgrv2.getSqlClient(source), + ); + const dbColumns = ( + await sqlClient.columnList({ + tn: table.table_name, + schema: source.getConfig()?.schema, + }) + )?.data?.list; + + // todo: check type as well + const dbColumn = dbColumns.find( + (c) => + c.column_name === + (c.uidt === UITypes.CreateTime ? 'created_at' : 'updated_at'), + ); + + if(!dbColumn){ + // create column in db + } + + await Column.insert({ + ...colBody, + fk_model_id: table.id, + }); + } + } break; default: {