Files
qrust/support/timescaledb/999_init.sh
2024-01-25 17:15:37 +00:00

42 lines
1.1 KiB
Bash

#!/bin/bash
psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE TYPE CLASS AS ENUM ('us_equity', 'crypto', 'unknown');
CREATE TYPE EXCHANGE AS ENUM (
'AMEX',
'ARCA',
'BATS',
'NASDAQ',
'NYSE',
'NYSEARCA',
'OTC',
'unknown'
);
CREATE TABLE assets (
id UUID PRIMARY KEY,
symbol VARCHAR(20) NOT NULL UNIQUE,
class CLASS NOT NULL,
exchange EXCHANGE NOT NULL,
trading BOOLEAN NOT NULL DEFAULT FALSE,
date_added TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX assets_symbol_idx ON assets (symbol);
CREATE TABLE bars (
timestamp TIMESTAMPTZ NOT NULL,
asset_id UUID NOT NULL REFERENCES assets(id),
open DOUBLE PRECISION NOT NULL,
high DOUBLE PRECISION NOT NULL,
low DOUBLE PRECISION NOT NULL,
close DOUBLE PRECISION NOT NULL,
volume DOUBLE PRECISION NOT NULL,
PRIMARY KEY (asset_id, timestamp),
FOREIGN KEY (asset_id) REFERENCES assets(id)
);
SELECT create_hypertable('bars', 'timestamp', 'asset_id', 2);
EOSQL