@chkit/plugin-obsessiondb

中文文档
0.2.0-beta.16发布于 2026/11/09MITTypeScriptES Module构建来源已验证近 30 天下载 1.2万

ObsessionDB 管理 chkit 的 ClickHouse 集成插件

中文使用文档
文档目录9 节
  1. 特征
  2. 为什么
  3. 安装
  4. 使用量
  5. 如何运作
  6. 实例
  7. 重写什么
  8. 文档
  9. 许可证

@chkit/plugin-obsessiondb

ObsessionDB 函数 chkit 的辅助插件。 此插件设计用于 ObsessionDB 函数 用户还需要瞄准定期的 ClickHouse 实例(如本地开发、自办中转).

部分 齐克特 单相机 此插件扩展 chkit CLI 所以一套Schema文件对ObsessionDB和正版ClickHouse都有作用.

特征

  • storage_policy 剥离 -- 删除 storage_policy 表格设置,其ObsessionDB政策(例如:. 's3') 在常规的 ClickHouse 服务器上不存在, 当瞄准非 ObsessionDB 实例时
  • 主机自动检测 -- 检查 clickhouse.url 确定目标是否为 ObsessionDB 或 常规 ClickHouse, 不需要手动配置
  • CLI 旗帜覆盖 - 说吧 --force-shared-engines 财务报告和审定财务报表 --no-shared-engines 覆盖单个自动检测的旗帜 generate 或者说 snapshot rebuild 运行
  • 由 generate 财务报告和审定财务报表 snapshot rebuild - 说吧 migrate, (中文(简体) ), status, (中文(简体) ), drift,以及 check 从迁移文件中绘制并快取这些命令
  • 意见和实际意见未受影响 - 只重写表格定义

为什么

ObsessionDB 用途 Shared 引擎变体( 如. SharedReplacingMergeTree, (中文(简体) ), SharedMergeTree在没有操作者干预的情况下提供有管理的复制。 这些引擎在常规的ClickHouse中并不存在,因此chkit总是会写出标准引擎名称(英语:SharedReplacingMergeTree(ts) 变成 ENGINE = ReplacingMergeTree(ts)和 ObsessionDB 取代 Shared 服务器上的变体.

storage_policy 是一个标准的 ClickHouse 表格设置,但存储策略 ObsessionDB 提供,例如 's3',在正则的 ClickHouse 服务器上没有定义,所以 CREATE TABLE 失败 Unknown storage policy。这个插件在 diff/ 规划管道和条块之前拦截了 chema 定义 storage_policy,无论它的价值如何,当目标不是ObsessionDB时,所以您可以使用一个单一的一组图案文件,跨越ObsessionDB和正则的ClickHouse.

安装

bun add -d @chkit/plugin-obsessiondb

使用量

在配置中注册插件 :

// clickhouse.config.ts
import { defineConfig } from '@chkit/core'
import { obsessiondb } from '@chkit/plugin-obsessiondb'

export default defineConfig({
  schema: './src/db/schema/**/*.ts',
  outDir: './chkit',
  plugins: [
    obsessiondb(),
  ],
  clickhouse: {
    url: process.env.CLICKHOUSE_URL ?? 'http://localhost:8123',
  },
})

重写时自动运行 generate 或者说 snapshot rebuild 装入计划.

如何运作

  1. 自动检测 (默认):插件检查您的 clickhouse.url 配置值 。 如果主机是 ObsessionDB 实例(.obsessiondb.com 或者说 obsession.numia-dev.com, (中文(简体) ), storage_policy 保留。 否则就剥了.

  2. 部队旗帜: 覆盖单个自动检测 generate 或者说 snapshot rebuild 运行 :

    • --force-shared-engines - 保留 storage_policy,即使该 URL 不被确认为 ObsessionDB(例如自定义域背后的服务)
    • --no-shared-engines - 脱去 storage_policy,甚至在ObsessionDB上

    如果两者都通过, --force-shared-engines 赢了 迁移档案和 snapshot.json 保持国旗的决定,所以通过同样的旗帜 在每一个 generate 财务报告和审定财务报表 snapshot rebuild 为了那个目标. migrate, (中文(简体) ), status, (中文(简体) ), drift,以及 check 接受两种旗帜,但忽略它们.

实例

# Auto-detect based on clickhouse.url (default behavior)
bunx chkit generate

# Strip storage_policy even when targeting ObsessionDB
bunx chkit generate --no-shared-engines

# Keep it for an ObsessionDB service behind a custom domain
bunx chkit generate --force-shared-engines
bunx chkit snapshot rebuild --force-shared-engines

重写什么

司马生成 DDL( 每个目标)
engine: 'SharedMergeTree'ENGINE = MergeTree()
engine: 'SharedReplacingMergeTree(ts)'ENGINE = ReplacingMergeTree(ts)
engine: 'SharedAggregatingMergeTree'ENGINE = AggregatingMergeTree()
engine: 'MergeTree'ENGINE = MergeTree()
表格设置常规点击之家ObsessionDB 函数
storage_policy (任何数值)剥去保留
任何其他设置保留保留

只有表格定义受到影响。 意见和实际意见没有改变.

文档

见 chkit 文档。 。 。 .

许可证

麻省理工学院

版本与发布记录

@chkit/plugin-obsessiondb 共发布 35 个版本,首次发布于 2026/02/24;过去 12 个月发布了 35 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.0-beta.16latest2026/11/09今天
0.2.0-beta.142026/11/081 天前
0.2.0-beta.132026/11/081 天前
0.2.0-beta.122026/11/045 天前
0.2.0-beta.112026/10/1228 天前
0.2.0-beta.82026/09/291 个月前

关于 @chkit/plugin-obsessiondb 的常见问题

@chkit/plugin-obsessiondb 是什么?

ObsessionDB 管理 chkit 的 ClickHouse 集成插件

如何安装 @chkit/plugin-obsessiondb?

在项目目录运行 npm install @chkit/plugin-obsessiondb,或使用 pnpm add / yarn add / bun add。

@chkit/plugin-obsessiondb 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@chkit/plugin-obsessiondb 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@chkit/plugin-obsessiondb 可以商用吗?

@chkit/plugin-obsessiondb 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@chkit/plugin-obsessiondb 的下载量有多少?

根据 npm 官方下载统计,@chkit/plugin-obsessiondb 在 2026/10/10 – 2026/11/08 这 30 天内被下载 11,533 次,日均约 384 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@chkit/plugin-obsessiondb 还在维护吗?

最新版本 0.2.0-beta.16 发布于 2026/11/09(今天);至今共发布 35 个版本,其中过去 12 个月发布了 35 个;首次发布于 2026/02/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。