Fix number ranges after tenant import
All checks were successful
Build and Push Docker Images / build-backend (push) Successful in 45s
Build and Push Docker Images / build-frontend (push) Successful in 25s
Build and Push Docker Images / build-website (push) Successful in 23s
Build and Push Docker Images / build-central-services-api (push) Successful in 23s
Build and Push Docker Images / build-central-services-admin (push) Successful in 24s
Build and Push Docker Images / build-docs (push) Successful in 24s

This commit is contained in:
2026-08-06 11:00:48 +02:00
parent 7b705c7f40
commit 52490ff734
3 changed files with 79 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ import { pool } from "../../db"
import { s3 } from "./s3"
import { secrets } from "./secrets"
import { decrypt, encrypt } from "./crypt"
import { restoreImportedTenantNumberRanges } from "./tenantImportNumberRanges"
type TableRows = Record<string, Record<string, any>[]>
type TableMetadata = {
@@ -991,6 +992,8 @@ export const importTenantFullExport = async (
progressDone += 1
await reportProgress("Kommunikationsräume bereinigt")
await restoreImportedTenantNumberRanges(client, exportData)
await refreshSequences(client, columnsByTable)
progressDone = progressTotal
await reportProgress("Import abgeschlossen")

View File

@@ -0,0 +1,28 @@
type QueryClient = {
query: (query: string, values: unknown[]) => Promise<{ rowCount?: number | null }>
}
type TenantImportData = {
tenantId: number
tables: Record<string, Record<string, any>[]>
}
export const restoreImportedTenantNumberRanges = async (
client: QueryClient,
exportData: TenantImportData
) => {
const tenantRow = (exportData.tables.tenants || []).find(
(row) => Number(row.id) === Number(exportData.tenantId)
)
if (!tenantRow || tenantRow.numberRanges === null || typeof tenantRow.numberRanges === "undefined") {
return 0
}
const result = await client.query(
`update "tenants" set "numberRanges" = $1::jsonb where "id" = $2`,
[JSON.stringify(tenantRow.numberRanges), exportData.tenantId]
)
return result.rowCount || 0
}