用途:面向 PostHog 仓库中的本地 Postgres 应用数据库(teams、projects、flags、Django 模型等元数据)执行只读 SQL 查询,用于查表、行级调试、迁移与约束排查以及查询性能分析。事件类分析数据存放在 ClickHouse,不属于本技能范围。
主要能力:把用户问题翻译为一条或多条只读 SQL;执行前先在代码块中展示 SQL;运行后给出结果与简要解读;支持 EXPLAIN 计划估算,以及 EXPLAIN (ANALYZE, BUFFERS, VERBOSE) 对 SELECT 做实际执行分析;默认加 LIMIT 100,宽表可用 -x。
使用方式:始终通过 PGOPTIONS='-c default_transaction_read_only=on' 强制只读连接。默认本地地址为 postgres://posthog:posthog@localhost:5432/posthog(主机 localhost、端口 5432、用户/密码 posthog、库 posthog、SSL 关闭);也可使用 shell 中已有的 $DATABASE_URL,或用 npx dotenv 从仓库根目录的 .env 加载。示例:PGOPTIONS='-c default_transaction_read_only=on' psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -c "SELECT 1;",在仓库根目录运行。同一服务器上还有 posthog_persons 及各产品隔离库 posthog_<name>,改路径即可切换。
限制:严禁任何变更操作,包括 INSERT、UPDATE、DELETE、MERGE、TRUNCATE 等 DML,CREATE、DROP、ALTER、RENAME 等 DDL,以及 COPY TO program、GRANT/REVOKE 等写入;不得对非只读 SELECT 使用 EXPLAIN ANALYZE,需要写入时应改用数据库客户端或迁移工具。EXPLAIN ANALYZE 会真实执行查询,在生产或共享库上可能造成负载,建议用有界查询并在低峰或副本上执行。其余配置细节与表名约定以仓库文件和迁移为准。