mirror of
https://github.com/syntrex-lab/gomcp.git
synced 2026-04-26 21:06:21 +02:00
30 lines
1.4 KiB
MySQL
30 lines
1.4 KiB
MySQL
|
|
-- +goose Up
|
||
|
|
-- Add tenant_id to SOC tables for multi-tenant isolation.
|
||
|
|
-- Safe: DEFAULT '' fills existing rows without data loss.
|
||
|
|
|
||
|
|
ALTER TABLE soc_events ADD COLUMN IF NOT EXISTS tenant_id TEXT NOT NULL DEFAULT '';
|
||
|
|
ALTER TABLE soc_incidents ADD COLUMN IF NOT EXISTS tenant_id TEXT NOT NULL DEFAULT '';
|
||
|
|
ALTER TABLE soc_sensors ADD COLUMN IF NOT EXISTS tenant_id TEXT NOT NULL DEFAULT '';
|
||
|
|
|
||
|
|
-- Tenant isolation indexes
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_soc_events_tenant ON soc_events(tenant_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_soc_incidents_tenant ON soc_incidents(tenant_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_soc_sensors_tenant ON soc_sensors(tenant_id);
|
||
|
|
|
||
|
|
-- Composite indexes for common tenant-scoped queries
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_soc_events_tenant_ts ON soc_events(tenant_id, timestamp DESC);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_soc_events_tenant_cat ON soc_events(tenant_id, category);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_soc_incidents_tenant_status ON soc_incidents(tenant_id, status);
|
||
|
|
|
||
|
|
-- +goose Down
|
||
|
|
DROP INDEX IF EXISTS idx_soc_incidents_tenant_status;
|
||
|
|
DROP INDEX IF EXISTS idx_soc_events_tenant_cat;
|
||
|
|
DROP INDEX IF EXISTS idx_soc_events_tenant_ts;
|
||
|
|
DROP INDEX IF EXISTS idx_soc_sensors_tenant;
|
||
|
|
DROP INDEX IF EXISTS idx_soc_incidents_tenant;
|
||
|
|
DROP INDEX IF EXISTS idx_soc_events_tenant;
|
||
|
|
|
||
|
|
ALTER TABLE soc_sensors DROP COLUMN IF EXISTS tenant_id;
|
||
|
|
ALTER TABLE soc_incidents DROP COLUMN IF EXISTS tenant_id;
|
||
|
|
ALTER TABLE soc_events DROP COLUMN IF EXISTS tenant_id;
|