Add missing foreign keys between api.metrics and api.metadata

This commit is contained in:
xbgmsharp
2022-10-25 16:25:45 +02:00
parent e92515ba66
commit 95ff1d8ff2

View File

@@ -73,32 +73,6 @@ UPDATE pg_language SET lanpltrusted = true WHERE lanname = 'plpython3u';
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-- Tables -- Tables
-- --
-- Metrics from signalk
CREATE TABLE IF NOT EXISTS api.metrics (
time TIMESTAMP WITHOUT TIME ZONE NOT NULL,
client_id VARCHAR(255) NOT NULL,
latitude DOUBLE PRECISION NULL,
longitude DOUBLE PRECISION NULL,
speedOverGround DOUBLE PRECISION NULL,
courseOverGroundTrue DOUBLE PRECISION NULL,
windSpeedApparent DOUBLE PRECISION NULL,
angleSpeedApparent DOUBLE PRECISION NULL,
status VARCHAR(100) NULL,
metrics jsonb NULL
);
-- Description
COMMENT ON TABLE
api.metrics
IS 'Stores metrics from vessel';
-- Index todo!
CREATE INDEX ON api.metrics (client_id, time DESC);
CREATE INDEX ON api.metrics (status, time DESC);
-- json index??
CREATE INDEX ON api.metrics using GIN (metrics);
-- timescaledb hypertable
SELECT create_hypertable('api.metrics', 'time');
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-- Metadata from signalk -- Metadata from signalk
CREATE TABLE IF NOT EXISTS api.metadata( CREATE TABLE IF NOT EXISTS api.metadata(
@@ -123,6 +97,33 @@ COMMENT ON TABLE
-- Index todo! -- Index todo!
CREATE INDEX metadata_client_id_idx ON api.metadata (client_id); CREATE INDEX metadata_client_id_idx ON api.metadata (client_id);
---------------------------------------------------------------------------
-- Metrics from signalk
CREATE TABLE IF NOT EXISTS api.metrics (
time TIMESTAMP WITHOUT TIME ZONE NOT NULL,
client_id VARCHAR(255) NOT NULL REFERENCES api.metadata(client_id) ON DELETE RESTRICT,
latitude DOUBLE PRECISION NULL,
longitude DOUBLE PRECISION NULL,
speedOverGround DOUBLE PRECISION NULL,
courseOverGroundTrue DOUBLE PRECISION NULL,
windSpeedApparent DOUBLE PRECISION NULL,
angleSpeedApparent DOUBLE PRECISION NULL,
status VARCHAR(100) NULL,
metrics jsonb NULL
);
-- Description
COMMENT ON TABLE
api.metrics
IS 'Stores metrics from vessel';
-- Index todo!
CREATE INDEX ON api.metrics (client_id, time DESC);
CREATE INDEX ON api.metrics (status, time DESC);
-- json index??
CREATE INDEX ON api.metrics using GIN (metrics);
-- timescaledb hypertable
SELECT create_hypertable('api.metrics', 'time');
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-- Logbook -- Logbook
-- todo add clientid ref -- todo add clientid ref
@@ -240,8 +241,8 @@ COMMENT ON COLUMN api.moorages.geog IS 'postgis geography type default SRID 4326
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-- Stay Type -- Stay Type
CREATE TABLE IF NOT EXISTS api.stays_at( CREATE TABLE IF NOT EXISTS api.stays_at(
stay_code INTEGER, stay_code INTEGER NOT NULL,
description TEXT description TEXT NOT NULL
); );
-- Description -- Description
COMMENT ON TABLE api.stays_at IS 'Stay Type'; COMMENT ON TABLE api.stays_at IS 'Stay Type';