#!/bin/bash psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL CREATE TYPE CLASS AS ENUM ('us_equity', 'crypto'); CREATE TYPE EXCHANGE AS ENUM ( 'AMEX', 'ARCA', 'BATS', 'NASDAQ', 'NYSE', 'NYSEARCA', 'OTC', 'CRYPTO' ); CREATE TABLE assets ( symbol TEXT PRIMARY KEY, class CLASS NOT NULL, exchange EXCHANGE NOT NULL, trading BOOLEAN NOT NULL DEFAULT FALSE, timestamp_added TIMESTAMPTZ NOT NULL DEFAULT NOW(), timestamp_first TIMESTAMPTZ NOT NULL, timestamp_last TIMESTAMPTZ NOT NULL ); CREATE TABLE bars ( timestamp TIMESTAMPTZ, asset_symbol TEXT REFERENCES assets(symbol) ON DELETE CASCADE ON UPDATE CASCADE, open DOUBLE PRECISION, high DOUBLE PRECISION, low DOUBLE PRECISION, close DOUBLE PRECISION, volume DOUBLE PRECISION NOT NULL, num_trades BIGINT NOT NULL, volume_weighted DOUBLE PRECISION NOT NULL, PRIMARY KEY (asset_symbol, timestamp) ); SELECT create_hypertable('bars', 'timestamp', 'asset_symbol', 15); ALTER TABLE bars SET ( timescaledb.compress, timescaledb.compress_segmentby = 'asset_symbol' ); SELECT add_compression_policy('bars', INTERVAL '30 days'); EOSQL