用途:为 ClickHouse 搭建开发、预发布(staging)与生产三套隔离实例,通过单一类型化配置模块按 NODE_ENV 解析目标实例,使应用代码无需按环境分支,并在非开发环境阻止破坏性操作。
主要能力:按数据敏感度分层部署(开发用 Docker 本地与合成种子数据,预发布用 ClickHouse Cloud Dev 层与生产采样副本,生产用 Prod 层与真实数据);提供类型化配置模块 src/config/clickhouse.ts,非开发环境启动时强制要求密码并强制 HTTPS;提供 src/clickhouse/client.ts 惰性单例客户端工厂;提供 scripts/apply-schema.ts 按排序执行 .sql 的确定性迁移;提供 requireNonProduction 与 validateDatabaseName 等环境守卫;密钥按环境存入 Vault、AWS Secrets Manager 或 GCP Secret Manager,开发用被 git 忽略的 .env.local;CI/CD 自动部署预发布,生产需人工审批。
使用方式:先选择环境策略,再创建配置模块与客户端工厂,接入密钥管理,用迁移脚本应用 schema,加入环境守卫,最后接入 CI/CD。应用侧调用 getClient() 查询,例如 getClient().query({ query: 'SELECT count() AS c FROM events WHERE date = today()', format: 'JSONEachRow' })。
适用场景:需要多环境隔离、密钥集中管理与可重复 schema 迁移的 ClickHouse 项目。
限制:需具备 ClickHouse Cloud 或自托管实例、密钥管理方案与带环境变量的 CI/CD;完整代码与示例见资料中的 references/implementation.md 与 references/examples.md,具体配置表暂未提供。