KI-AGENT: Exportiere Sachkonten beim Mandantenumzug

This commit is contained in:
2026-05-18 22:05:53 +02:00
parent c7ba7a9cc5
commit 30aaf141c7

View File

@@ -123,6 +123,7 @@ export const buildTenantFullExport = async (server: FastifyInstance, tenantId: n
if (!tenantRows.length) throw new Error("Tenant nicht gefunden") if (!tenantRows.length) throw new Error("Tenant nicht gefunden")
addRows(tables, "tenants", tenantRows) addRows(tables, "tenants", tenantRows)
addRows(tables, "accounts", await loadRows(client, "accounts", `${quoteIdent("accountChart")} = $1`, [tenantRows[0].accountChart || "skr03"]))
for (const [table, metadata] of columnsByTable.entries()) { for (const [table, metadata] of columnsByTable.entries()) {
if (table === "tenants") continue if (table === "tenants") continue
@@ -286,8 +287,15 @@ const insertRows = async (client: any, table: string, rows: Record<string, any>[
const placeholders = rowColumns.map((_, index) => `$${index + 1}`).join(", ") const placeholders = rowColumns.map((_, index) => `$${index + 1}`).join(", ")
const values = rowColumns.map((column) => prepareColumnValue(row[column], metadata.jsonColumns.has(column))) const values = rowColumns.map((column) => prepareColumnValue(row[column], metadata.jsonColumns.has(column)))
const conflictSql = table === "tenants" && rowColumns.includes("id")
? `on conflict (${quoteIdent("id")}) do update set ${rowColumns
.filter((column) => column !== "id")
.map((column) => `${quoteIdent(column)} = excluded.${quoteIdent(column)}`)
.join(", ")}`
: "on conflict do nothing"
await client.query( await client.query(
`insert into ${quoteIdent(table)} (${rowColumns.map(quoteIdent).join(", ")}) values (${placeholders}) on conflict do nothing`, `insert into ${quoteIdent(table)} (${rowColumns.map(quoteIdent).join(", ")}) values (${placeholders}) ${conflictSql}`,
values values
) )
inserted += 1 inserted += 1
@@ -328,6 +336,7 @@ export const importTenantFullExport = async (
const client = await pool.connect() const client = await pool.connect()
const importOrder = [ const importOrder = [
"tenants", "tenants",
"accounts",
"auth_users", "auth_users",
"auth_roles", "auth_roles",
"auth_role_permissions", "auth_role_permissions",