KI-AGENT: Überspringe generierte Spalten beim Mandantenimport
All checks were successful
Build and Push Docker Images / build-backend (push) Successful in 17s
Build and Push Docker Images / build-frontend (push) Successful in 10s
Build and Push Docker Images / build-docs (push) Successful in 11s

This commit is contained in:
2026-05-18 21:40:47 +02:00
parent ff70338b21
commit cc3c405473

View File

@@ -9,6 +9,7 @@ type TableRows = Record<string, Record<string, any>[]>
type TableMetadata = {
columns: string[]
jsonColumns: Set<string>
generatedColumns: Set<string>
}
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<string>(),
generatedColumns: new Set<string>(),
}
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<string, any>[
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))