...

Text file src/edge-infra.dev/pkg/f8n/devinfra/testinfra/sql/schema/schema.sql

Documentation: edge-infra.dev/pkg/f8n/devinfra/testinfra/sql/schema

     1CREATE SCHEMA IF NOT EXISTS test_infra;
     2SET SCHEMA 'test_infra';
     3
     4CREATE OR REPLACE FUNCTION trigger_set_timestamp() RETURNS TRIGGER
     5LANGUAGE plpgsql AS $func$
     6BEGIN
     7    NEW.updated_at = NOW();
     8    RETURN NEW;
     9END $func$;
    10
    11-- tbl edge_jobs
    12CREATE TABLE IF NOT EXISTS edge_jobs (
    13    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    14    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    15    updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    16    elapsed BIGINT,
    17    started TIMESTAMPTZ,
    18    finished TIMESTAMPTZ,
    19    version TEXT,
    20    path TEXT,
    21    job TEXT,
    22    workflow TEXT,
    23    number TEXT CONSTRAINT unique_number UNIQUE, -- runID + unique string
    24    run TEXT, -- runID
    25    tests_run INTEGER,
    26    tests_failed INTEGER,
    27    passed BOOLEAN,
    28    repos TEXT,
    29    repo_commit TEXT
    30);
    31
    32CREATE OR REPLACE TRIGGER edge_jobs_timestamp BEFORE
    33UPDATE ON edge_jobs FOR EACH ROW EXECUTE PROCEDURE trigger_set_timestamp();
    34
    35-- tbl edge_job_metadatas
    36CREATE TABLE IF NOT EXISTS edge_job_metadatas (
    37    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    38    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    39    updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    40    edge_job UUID NOT NULL REFERENCES edge_jobs(id) ON DELETE CASCADE,
    41    key TEXT,
    42    value TEXT
    43);
    44
    45CREATE INDEX IF NOT EXISTS idx_edge_job_fkey ON edge_job_metadatas (edge_job);
    46CREATE INDEX IF NOT EXISTS idx_edge_job_fkey_inc_key_value ON edge_job_metadatas (edge_job) INCLUDE (key, value);
    47
    48CREATE OR REPLACE TRIGGER edge_job_metadatas_timestamp BEFORE
    49UPDATE ON edge_job_metadatas FOR EACH ROW EXECUTE PROCEDURE trigger_set_timestamp();
    50
    51-- tbl edge_job_tests
    52CREATE TABLE IF NOT EXISTS edge_job_tests (
    53    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    54    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    55    updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    56    edge_job UUID NOT NULL REFERENCES edge_jobs(id) ON DELETE CASCADE,
    57    name TEXT,
    58    suite TEXT,
    59    time BIGINT, -- convert to some other time / duration type?
    60    failed BOOLEAN,
    61    failure_text TEXT
    62);
    63
    64CREATE INDEX IF NOT EXISTS idx_edge_job_fkey ON edge_job_tests (edge_job);
    65
    66CREATE OR REPLACE TRIGGER edge_job_tests_timestamp BEFORE
    67UPDATE ON edge_job_tests FOR EACH ROW EXECUTE PROCEDURE trigger_set_timestamp();

View as plain text