Workstream 2: Datenbankschema & Migrationen (Phase 1)

Vollständiges Drizzle-Schema (alle Tabellen/Enums/Indizes aus Spec §6):
brigades, users, merkmale(+optionen), vehicle_templates(+merkmale,+aliasse),
equipment_categories(+merkmale), vehicles, equipment, merkmal_values (EAV mit
typisierten Spalten + 4 Indizes), login_attempts, audit_log. Einzige initiale
Migration 0000 (idempotent: enum-DO-Blöcke, IF NOT EXISTS), scripts/migrate.ts,
db:* npm-Scripts.

Verifiziert (offline): tsc --noEmit OK; drizzle-kit check 'Everything's fine';
Migration 7 CREATE TYPE / 14 CREATE TABLE / 17 CREATE INDEX / 32 IF NOT EXISTS.
DEFERRED (kein Postgres im Sandbox — Ursache des vorherigen Stalls): live
db:migrate und DB-abhängige Schema-Tests; laufen in CI/Deploy mit Postgres.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude
2026-06-09 08:58:56 +02:00
parent d7c74aa041
commit a9666ff96c
23 changed files with 3291 additions and 30 deletions

View File

@@ -1,5 +1,13 @@
// Barrel für das Datenbankschema.
// Wird vom Datenbank-Workstream (Workstream 2) mit Tabellen, Enums und Indizes
// gefüllt. Dieser Workstream (Fundament) definiert bewusst KEINE fachlichen
// Tabellen und ist NICHT Migrations-Eigentümer.
export {};
// Barrel für das gesamte Datenbankschema (Workstream 2 — alleiniger
// Schema-Eigentümer). Feature-Workstreams IMPORTIEREN nur von hier.
export * from "./enums";
export * from "./brigades";
export * from "./users";
export * from "./merkmale";
export * from "./templates";
export * from "./equipment-categories";
export * from "./assets";
export * from "./merkmal-values";
export * from "./auth-rate-limit";
export * from "./audit";
export * from "./relations";