ariadne/ariadne/db/schema.py

67 lines
1.8 KiB
Python

from __future__ import annotations
ARIADNE_TABLES_SQL = [
"""
CREATE TABLE IF NOT EXISTS ariadne_task_runs (
id BIGSERIAL PRIMARY KEY,
request_code TEXT,
task TEXT NOT NULL,
status TEXT NOT NULL,
detail TEXT,
started_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
finished_at TIMESTAMPTZ,
duration_ms INTEGER
)
""",
"""
CREATE INDEX IF NOT EXISTS ariadne_task_runs_request_code_idx
ON ariadne_task_runs (request_code)
""",
"""
CREATE TABLE IF NOT EXISTS ariadne_schedule_state (
task_name TEXT PRIMARY KEY,
cron_expr TEXT NOT NULL,
last_started_at TIMESTAMPTZ,
last_finished_at TIMESTAMPTZ,
last_status TEXT,
last_error TEXT,
last_duration_ms INTEGER,
next_run_at TIMESTAMPTZ,
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
)
""",
"""
CREATE TABLE IF NOT EXISTS ariadne_cluster_state (
id BIGSERIAL PRIMARY KEY,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
snapshot JSONB NOT NULL
)
""",
"""
CREATE INDEX IF NOT EXISTS ariadne_cluster_state_created_idx
ON ariadne_cluster_state (created_at DESC)
""",
"""
CREATE TABLE IF NOT EXISTS ariadne_events (
id BIGSERIAL PRIMARY KEY,
event_type TEXT NOT NULL,
detail TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
)
""",
"""
CREATE INDEX IF NOT EXISTS ariadne_events_type_idx
ON ariadne_events (event_type, created_at)
""",
]
ARIADNE_ACCESS_REQUEST_ALTER_SQL = """
ALTER TABLE access_requests
ADD COLUMN IF NOT EXISTS welcome_email_sent_at TIMESTAMPTZ,
ADD COLUMN IF NOT EXISTS approval_flags TEXT[],
ADD COLUMN IF NOT EXISTS approval_note TEXT,
ADD COLUMN IF NOT EXISTS denial_note TEXT,
ADD COLUMN IF NOT EXISTS first_name TEXT,
ADD COLUMN IF NOT EXISTS last_name TEXT
"""