Files
nexarch/archive/migrations/0004_retention_class_rules.up.sql
T
sysops 2c9a7482b6 feat(archive): RET-02 Aufbewahrungsfristen-Engine
internal/retentionengine: Frist je Aufbewahrungsklasse als natives
Postgres-INTERVAL, Stichtagsberechnung an Postgres delegiert statt
eigener Kalenderrechnung (Schaltjahr/Monatsende-Referenzwerte real
verifiziert: 2024-02-29+1y=2025-02-28, 2026-01-31+1mo=2026-02-28).
Periodischer Job (ListExpiringObjects) beschraenkt sich per DISTINCT ON
auf die juengste Klassenzuordnung je Objekt - sonst wuerden Objekte mit
mehrfach geaenderter Klasse (RET-01-Historisierung) doppelt auftauchen,
real mit einem Zwei-Zuordnungen-Testobjekt bewiesen. Scope bewusst eng
gehalten: keine RET-05-Anbindung, keine Vernichtungslogik - das ist
Ticket-Scope, dependsOn ist nur RET-01.
2026-08-30 01:54:48 +02:00

10 lines
433 B
SQL

-- RET-02: Fristenmodell je Aufbewahrungsklasse. duration ist ein
-- natives Postgres-INTERVAL statt eigener Tage-/Monatszaehlung, damit
-- Kalenderfaelle (Schaltjahr, Monatsende) exakt Postgres' eigene,
-- bewaehrte Intervall-Arithmetik nutzen statt eine eigene, potenziell
-- fehlerhafte Nachbildung.
CREATE TABLE IF NOT EXISTS retention_class_rules (
retention_class TEXT PRIMARY KEY,
duration INTERVAL NOT NULL
);