#!/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); CREATE TABLE bars_filled ( timestamp TIMESTAMPTZ, asset_symbol TEXT REFERENCES assets(symbol) ON DELETE CASCADE ON UPDATE CASCADE, 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, num_trades BIGINT NOT NULL, volume_weighted DOUBLE PRECISION NOT NULL, PRIMARY KEY (asset_symbol, timestamp) ); SELECT create_hypertable('bars_filled', 'timestamp', 'asset_symbol', 15); EOSQL