14 lines
838 B
SQL
14 lines
838 B
SQL
CREATE EXTENSION IF NOT EXISTS timescaledb;
|
|
CREATE TABLE IF NOT EXISTS monitor_identity (singleton boolean PRIMARY KEY DEFAULT true CHECK(singleton), source_id text NOT NULL);
|
|
INSERT INTO monitor_identity(singleton,source_id) VALUES(true,gen_random_uuid()::text) ON CONFLICT DO NOTHING;
|
|
CREATE TABLE IF NOT EXISTS monitor_samples (
|
|
seq bigint GENERATED ALWAYS AS IDENTITY,
|
|
observed_at timestamptz NOT NULL,
|
|
payload jsonb NOT NULL,
|
|
PRIMARY KEY(observed_at,seq)
|
|
);
|
|
SELECT create_hypertable('monitor_samples',by_range('observed_at',INTERVAL '1 hour'),if_not_exists=>true);
|
|
CREATE INDEX IF NOT EXISTS monitor_samples_cursor ON monitor_samples(seq);
|
|
CREATE TABLE IF NOT EXISTS monitor_definitions(singleton boolean PRIMARY KEY DEFAULT true CHECK(singleton),payload jsonb NOT NULL);
|
|
REVOKE ALL ON DATABASE mission_core_monitor FROM PUBLIC;
|