Files
AfiS-Aktensystem/packages/db/prisma/migrations/20260902120000_aktenzeichen_praefix/migration.sql
T
HarlekinandClaude Opus 5 5cbdabf337 Aktenzeichen-Muster je Vorlage, Startskript für die Entwicklung
Richtigstellung zuerst: der vorige Commit trägt die Nachricht "Nichts davon
gebaut", enthält aber bereits die Schema-Änderung an CaseTemplate und
CaseCounter. Ein abgebrochener Aufruf hatte die Datei schon geschrieben, und
das nachfolgende `git add -A` hat sie mitgenommen. Die Nachricht war damit
falsch. Hier ist die Änderung vollständig und geprüft.

Das Muster des Aktenzeichens gehört zur Vorlage: Präfix und Stellenzahl je
Fallart, ein Nummernkreis je Präfix und Jahr. Die Abteilung führt gewachsene
Präfixe wie AKT-PA-2026-62843 neben dem AfiS-2026-0042 aus dem Glossar.

Die Migration ist von Hand geschrieben, weil der Wechsel des Primärschlüssels
auf CaseCounter den bestehenden Zähler erhalten muss: eine zurückgesetzte
Nummer wäre ein doppeltes Aktenzeichen. Vorher und nachher geprüft.

parseCaseNumber zerlegt von hinten, damit Präfixe mit Bindestrich funktionieren.
Ein Test belegt, dass AKT-PA und AfiS getrennte Nummernkreise führen.

Dazu start.sh für die lokale Entwicklung, solange der Dockge-Stack nicht läuft:
Datenbank hochfahren, Migrationen, Grundzustand, Worker und Web. Mit
--ohne-worker für Arbeit ohne Discord und --nur-db für die Datenbank allein.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 12:10:34 +02:00

21 lines
988 B
SQL

-- Aktenzeichen-Muster je Vorlage, siehe docs/13-entscheidungen.md.
--
-- Die Abteilung führt gewachsene Präfixe wie "AKT-PA" mit fünfstelliger
-- Nummer. Das Muster gehört deshalb zur Vorlage, nicht ins Programm.
ALTER TABLE "CaseTemplate"
ADD COLUMN "numberPrefix" TEXT NOT NULL DEFAULT 'AfiS',
ADD COLUMN "numberPadding" INTEGER NOT NULL DEFAULT 4;
-- Der Nummernkreis läuft ab jetzt je Präfix und Jahr. Bestehende Zähler
-- gehören zum bisherigen Präfix "AfiS" und werden nicht zurückgesetzt:
-- eine erneut vergebene Nummer wäre ein doppeltes Aktenzeichen.
ALTER TABLE "CaseCounter" ADD COLUMN "prefix" TEXT NOT NULL DEFAULT 'AfiS';
ALTER TABLE "CaseCounter" DROP CONSTRAINT "CaseCounter_pkey";
ALTER TABLE "CaseCounter" ADD CONSTRAINT "CaseCounter_pkey" PRIMARY KEY ("prefix", "year");
-- Der Vorgabewert hat nur die vorhandenen Zeilen umgestellt; neue Zeilen
-- nennen ihr Präfix ausdrücklich.
ALTER TABLE "CaseCounter" ALTER COLUMN "prefix" DROP DEFAULT;