-- ============================================================ -- 01-timescaledb.sql — TimescaleDB 扩展初始化 -- ============================================================ -- Docker 容器首次启动时自动执行(/docker-entrypoint-initdb.d/) -- 确保 TimescaleDB 扩展在数据库级别启用。 -- -- init-db 完整执行链(按字母序自动执行): -- 01-timescaledb.sql — 本文件:启用 TimescaleDB 扩展 -- 02-init-tables.sql — 核心业务表(exchanges / trading_pairs / klines) -- 03-continuous-aggregates.sql — K 线分层连续聚合视图(5m → 1w) -- -- 注意: -- - klines 基表由 02-init-tables.sql 创建为 TimescaleDB hypertable -- - 连续聚合视图由 03-continuous-aggregates.sql 创建 -- - TypeORM 的 synchronize:true 与 SQL 脚本互为 fallback(开发/生产双路径) -- - 本脚本为 init-db 链的第一环,负责扩展启用(TimescaleDB / pg_prewarm / pg_stat_statements) -- ============================================================ -- 启用 TimescaleDB 扩展(必须最先执行) CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE; -- 启用 pg_prewarm 扩展(回测预热,减少首轮查询延迟) CREATE EXTENSION IF NOT EXISTS pg_prewarm; -- 启用 pg_stat_statements 扩展(慢查询监控,零成本) CREATE EXTENSION IF NOT EXISTS pg_stat_statements; -- 验证扩展已启用 DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_extension WHERE extname = 'timescaledb' ) THEN RAISE EXCEPTION 'TimescaleDB extension is not installed'; END IF; END $$;