-- +goose Up -- +goose StatementBegin -- ha_nodes-Erweiterung für Cluster-Phase-3-Foundation. Diese Spalten -- machen die Cluster-UI aussagekräftig auch im Single-Node-Modus und -- bereiten Multi-Node-Drift-Detection vor (analog mail-gateway). -- -- version: edgeguard-api-Version des Peers (aus /healthz). -- config_hash: deterministischer Hash über replizierbare DB-Tabellen. -- Drift-Banner triggert wenn nodes verschiedene Werte haben. -- mgmt_ip: Management-IP (nicht VIP) — separat von public_ip + api_url. -- status: online | offline | joining | leaving | unknown. ALTER TABLE ha_nodes ADD COLUMN IF NOT EXISTS version TEXT, ADD COLUMN IF NOT EXISTS config_hash TEXT, ADD COLUMN IF NOT EXISTS mgmt_ip INET, ADD COLUMN IF NOT EXISTS status TEXT NOT NULL DEFAULT 'unknown'; ALTER TABLE ha_nodes DROP CONSTRAINT IF EXISTS ha_nodes_status_check; ALTER TABLE ha_nodes ADD CONSTRAINT ha_nodes_status_check CHECK (status IN ('online', 'offline', 'joining', 'leaving', 'unknown')); CREATE INDEX IF NOT EXISTS idx_ha_nodes_status ON ha_nodes (status); -- +goose StatementEnd -- +goose Down -- +goose StatementBegin ALTER TABLE ha_nodes DROP CONSTRAINT IF EXISTS ha_nodes_status_check; ALTER TABLE ha_nodes DROP COLUMN IF EXISTS status, DROP COLUMN IF EXISTS mgmt_ip, DROP COLUMN IF EXISTS config_hash, DROP COLUMN IF EXISTS version; -- +goose StatementEnd