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>
40 lines
1.4 KiB
SQL
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
|