0002_dokumentation.sql
Pfad: migrations/0002_dokumentation.sql
Ext: sql
Größe: 1097 Bytes
Geändert: 2026-07-15 20:30:56+02
-- Migration 0002: Tabelle dokumentation.
-- Markdown-Inhalt, flach, Tags als Array. Kein Status (jede Zeile aktiv).
-- Historie entsteht automatisch via audit-Event-Trigger (history_dokumentation).
-- m:n-Verknuepfung zu prozessen (doku_prozess) folgt mit der prozesse-Tabelle.
CREATE TABLE dokumentation (
id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
slug text NOT NULL UNIQUE,
titel text NOT NULL,
body text NOT NULL DEFAULT '',
tags text[] NOT NULL DEFAULT '{}',
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);
CREATE INDEX idx_dokumentation_tags ON dokumentation USING gin (tags);
-- Generische Funktion: haelt updated_at bei jeder Aenderung aktuell.
CREATE OR REPLACE FUNCTION audit.fn_touch_updated_at() RETURNS trigger
LANGUAGE plpgsql AS $fn$
BEGIN
NEW.updated_at := now();
RETURN NEW;
END;
$fn$;
CREATE TRIGGER trg_touch_updated_at
BEFORE UPDATE ON dokumentation
FOR EACH ROW EXECUTE FUNCTION audit.fn_touch_updated_at();