a2a-source-edit: write db/migrations/001_app_records.sql
This commit is contained in:
@@ -1,11 +1,46 @@
|
||||
CREATE TABLE IF NOT EXISTS app_records (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
CREATE TABLE IF NOT EXISTS dashboard_runs (
|
||||
id UUID PRIMARY KEY,
|
||||
tenant_key TEXT NOT NULL,
|
||||
record_kind TEXT NOT NULL,
|
||||
payload JSONB NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
agency_name TEXT NOT NULL,
|
||||
window_label TEXT NOT NULL,
|
||||
min_severity TEXT NOT NULL DEFAULT 'all',
|
||||
input_hash TEXT NOT NULL,
|
||||
summary TEXT NOT NULL,
|
||||
filters JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
trends JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
exceptions JSONB NOT NULL DEFAULT '[]'::jsonb,
|
||||
dashboard_rows JSONB NOT NULL DEFAULT '[]'::jsonb,
|
||||
artifact_name TEXT NOT NULL,
|
||||
artifact_media_type TEXT NOT NULL,
|
||||
artifact_size_bytes INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS app_records_tenant_kind_idx
|
||||
ON app_records (tenant_key, record_kind, created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS dashboard_runs_tenant_created_idx
|
||||
ON dashboard_runs (tenant_key, created_at DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS dashboard_runs_tenant_hash_idx
|
||||
ON dashboard_runs (tenant_key, input_hash);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS execution_receipts (
|
||||
id UUID PRIMARY KEY,
|
||||
tenant_key TEXT NOT NULL,
|
||||
run_id UUID NOT NULL REFERENCES dashboard_runs(id) ON DELETE CASCADE,
|
||||
skill_name TEXT NOT NULL,
|
||||
status TEXT NOT NULL,
|
||||
input_hash TEXT NOT NULL,
|
||||
result_overview JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS execution_receipts_tenant_created_idx
|
||||
ON execution_receipts (tenant_key, created_at DESC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS scheduled_rollups (
|
||||
tenant_key TEXT NOT NULL,
|
||||
run_key TEXT NOT NULL,
|
||||
run_id UUID NOT NULL REFERENCES dashboard_runs(id) ON DELETE CASCADE,
|
||||
receipt_id UUID NOT NULL REFERENCES execution_receipts(id) ON DELETE CASCADE,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
PRIMARY KEY (tenant_key, run_key)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user