From f99c1f1abd8a9a1f2f43b073cac11a5982a00c75 Mon Sep 17 00:00:00 2001 From: Matthias Hochmeister Date: Tue, 9 Jun 2026 12:20:29 +0200 Subject: [PATCH] fix(seed): tsx-Laufzeit-Imports im Katalog-Seed auf relative .js umstellen Der Standalone-Runner `tsx src/db/seed/index.ts` (npm run db:seed) importierte Laufzeit-Module ueber den tsconfig-Pfad-Alias `@/` (`@/db/schema`, `@/lib/audit`). tsx loest `paths` nur versionsabhaengig auf (erst ab v4.20); package.json pinnt jedoch `tsx ^4.19.2`, sodass eine 4.19.x-Aufloesung mit ERR_MODULE_NOT_FOUND scheitert, bevor eine DB-Verbindung aufgebaut wird. Der Offline-Unit-Test maskierte das, weil er nur die `./data/*`-Dateien importiert und Vite den Alias aufloest. Fix: index.ts und upsert.ts nutzen jetzt relative `.js`-Imports (`../schema/index.js`, `../../lib/audit.js`, `./data/*.js`, `./upsert.js`) analog zu scripts/seed-auth.ts und scripts/migrate.ts. Damit ist die Aufloesung tsx-versionsunabhaengig und konsistent zur etablierten Konvention der uebrigen per tsx ausgefuehrten Scripts. Verifiziert offline: tsc --noEmit (0), 25 Seed-Unit-Tests gruen, und das Seed-Modul-Importgraph laedt unter `node --import tsx/esm` ohne Resolver-Fehler. Die tatsaechliche `npm run db:seed`-Ausfuehrung gegen Postgres bleibt deferred (kein Postgres/Server im Sandbox). Co-Authored-By: Claude Opus 4.8 (1M context) --- src/db/seed/index.ts | 12 ++++++------ src/db/seed/upsert.ts | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/db/seed/index.ts b/src/db/seed/index.ts index d64c96e..afcbde4 100644 --- a/src/db/seed/index.ts +++ b/src/db/seed/index.ts @@ -1,10 +1,10 @@ import { drizzle } from "drizzle-orm/node-postgres"; import { Pool } from "pg"; -import * as schema from "@/db/schema"; -import type { Tx } from "@/lib/audit"; -import { MERKMALE } from "./data/merkmale"; -import { VEHICLE_TEMPLATES } from "./data/vehicle-templates"; -import { EQUIPMENT_CATEGORIES } from "./data/equipment-categories"; +import * as schema from "../schema/index.js"; +import type { Tx } from "../../lib/audit.js"; +import { MERKMALE } from "./data/merkmale.js"; +import { VEHICLE_TEMPLATES } from "./data/vehicle-templates.js"; +import { EQUIPMENT_CATEGORIES } from "./data/equipment-categories.js"; import { upsertMerkmal, upsertVehicleTemplate, @@ -13,7 +13,7 @@ import { upsertEquipmentCategory, upsertCategoryMerkmal, pruneTemplateAliasse, -} from "./upsert"; +} from "./upsert.js"; /** * Katalog-Seed (Workstream 9): füllt Merkmale, Enum-Optionen, Fahrzeug-Vorlagen, diff --git a/src/db/seed/upsert.ts b/src/db/seed/upsert.ts index 86f8bfe..a44b799 100644 --- a/src/db/seed/upsert.ts +++ b/src/db/seed/upsert.ts @@ -1,9 +1,9 @@ import { eq, and } from "drizzle-orm"; -import type { Tx } from "@/lib/audit"; -import * as schema from "@/db/schema"; -import type { MerkmalSeed } from "./data/merkmale"; -import type { VehicleTemplateSeed } from "./data/vehicle-templates"; -import type { EquipmentCategorySeed } from "./data/equipment-categories"; +import type { Tx } from "../../lib/audit.js"; +import * as schema from "../schema/index.js"; +import type { MerkmalSeed } from "./data/merkmale.js"; +import type { VehicleTemplateSeed } from "./data/vehicle-templates.js"; +import type { EquipmentCategorySeed } from "./data/equipment-categories.js"; /** * Idempotente Upserts für Workstream-9-Seeds (Querschnittsstandard 7: