Files
edgeguard-native/internal/database/migrations/0020_ha_nodes_ext.sql
Debian a0b3bccbc6 fix(cluster): ha_nodes INET-Spalten → TEXT — pgx-Scan-Fehler OID 869
pgx kann INET-Typen (OID 869) nicht direkt in *string scannen.
Migration 0028 konvertiert public_ip, internal_ip, mgmt_ip auf TEXT
(USING ip::TEXT erhält bestehende Werte). Basis-Migrationen 0002 + 0020
auf TEXT umgestellt damit frische Installs keine INET anlegen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 15:41:20 +02:00

40 lines
1.4 KiB
SQL

-- +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 TEXT,
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, -- TEXT
DROP COLUMN IF EXISTS config_hash,
DROP COLUMN IF EXISTS version;
-- +goose StatementEnd