From cc3c4054738f56fc92f9bad44d01c63d61a7424b Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Mon, 18 May 2026 21:40:47 +0200 Subject: [PATCH] =?UTF-8?q?KI-AGENT:=20=C3=9Cberspringe=20generierte=20Spa?= =?UTF-8?q?lten=20beim=20Mandantenimport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/utils/tenantFullExport.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/src/utils/tenantFullExport.ts b/backend/src/utils/tenantFullExport.ts index f508361..cbfb1b9 100644 --- a/backend/src/utils/tenantFullExport.ts +++ b/backend/src/utils/tenantFullExport.ts @@ -9,6 +9,7 @@ type TableRows = Record[]> type TableMetadata = { columns: string[] jsonColumns: Set + generatedColumns: Set } export type TenantFullExport = { @@ -37,7 +38,7 @@ const quoteIdent = (value: string) => `"${value.replace(/"/g, '""')}"` const tableColumns = async (client: any) => { const result = await client.query(` - select table_name, column_name, data_type + select table_name, column_name, data_type, is_generated from information_schema.columns where table_schema = 'public' order by table_name, ordinal_position @@ -48,12 +49,16 @@ const tableColumns = async (client: any) => { const metadata = columnsByTable.get(row.table_name) || { columns: [], jsonColumns: new Set(), + generatedColumns: new Set(), } metadata.columns.push(row.column_name) if (row.data_type === "json" || row.data_type === "jsonb") { metadata.jsonColumns.add(row.column_name) } + if (row.is_generated === "ALWAYS") { + metadata.generatedColumns.add(row.column_name) + } columnsByTable.set(row.table_name, metadata) } @@ -220,7 +225,7 @@ const insertRows = async (client: any, table: string, rows: Record[ if (!rows.length) return 0 let inserted = 0 - const availableColumns = new Set(metadata.columns) + const availableColumns = new Set(metadata.columns.filter((column) => !metadata.generatedColumns.has(column))) for (const row of rows) { const rowColumns = Object.keys(row).filter((column) => availableColumns.has(column))