fix(clickhouse): cast DateTime64 to DateTime in TTL migration

This commit is contained in:
ryan
2026-07-02 16:21:30 +08:00
parent 58624db397
commit f0eca028f9
2 changed files with 8 additions and 6 deletions
@@ -2,17 +2,18 @@
-- Add TTL policies to analytics tables so ClickHouse can expire rows automatically.
ALTER TABLE w_user_access_logs MODIFY TTL created_at + INTERVAL 180 DAY;
ALTER TABLE of_node_access_logs MODIFY TTL logged_at + INTERVAL 90 DAY;
-- DateTime64 columns must be cast for TTL (ClickHouse requires DateTime/Date in TTL expr).
ALTER TABLE of_node_access_logs MODIFY TTL toDateTime(logged_at) + INTERVAL 90 DAY;
ALTER TABLE of_node_metric_snapshots MODIFY TTL captured_at + INTERVAL 30 DAY;
ALTER TABLE of_node_metric_snapshots MODIFY TTL toDateTime(captured_at) + INTERVAL 30 DAY;
ALTER TABLE of_node_request_reports MODIFY TTL window_ended_at + INTERVAL 30 DAY;
ALTER TABLE of_node_request_reports MODIFY TTL toDateTime(window_ended_at) + INTERVAL 30 DAY;
ALTER TABLE of_node_obs_openresty MODIFY TTL captured_at + INTERVAL 30 DAY;
ALTER TABLE of_node_obs_openresty MODIFY TTL toDateTime(captured_at) + INTERVAL 30 DAY;
ALTER TABLE of_node_obs_frps MODIFY TTL captured_at + INTERVAL 30 DAY;
ALTER TABLE of_node_obs_frps MODIFY TTL toDateTime(captured_at) + INTERVAL 30 DAY;
ALTER TABLE of_node_obs_frpc MODIFY TTL captured_at + INTERVAL 30 DAY;
ALTER TABLE of_node_obs_frpc MODIFY TTL toDateTime(captured_at) + INTERVAL 30 DAY;
-- Narrow ORDER BY for node access logs to match common filter patterns.
-- Requires ClickHouse 24.10+ (MODIFY ORDER BY). On older versions this statement