# @clickup/pg-snowflake 中文文档

规范地址：https://npmcn.com/package/%40clickup/pg-snowflake/

版本：2\.15\.3
npm 元数据更新时间：2026-10-14T03:51:51.263Z
中文译文更新时间：2026-11-10T01:37:14.479Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40clickup/pg-snowflake
原文对照：https://npmcn.com/package/%40clickup/pg-snowflake/?lang=original
项目主页：https://github.com/clickup/pg-snowflake#readme
源码仓库：https://github.com/clickup/pg-snowflake

弃用说明：This package is no longer maintained

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：25.3 kB，17 个文件
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2025-06-18T06:12:34.579Z
- 最新版本发布：2025-06-18T17:40:18.012Z
- 近 30 天下载量：97324（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 0 个）

## 中文简介

生成带有可选集群编号的 Snowflake ID 标准相容 ID

## 安装

```sh
npm install @clickup/pg-snowflake
```

也可以使用：`pnpm add @clickup/pg-snowflake`、`yarn add @clickup/pg-snowflake`、`bun add @clickup/pg-snowflake`

## README

# pg- snowflake: 生成 Snowflake ID 标准与可选集群编号相容的 ids

展览 `snowflake_gen()` 函数生成 [雪花标识 标准](https://en.wikipedia.org/wiki/Snowflake_ID) 兼容 ids (与 可自定义位数,见下文:

```
# Snowflake ID compatible (each letter is 1 bit):
0tttttttttttttttttttttttttttttttttt | CCCCC | iiiiiiiiii | ssssssssssssss
^                                     ^       ^            ^
35                                    5       10           14 bits
```

这里,

-   "t"表示时间戳的位数,即当前Unix时间在 毫秒减去数值 `CONST_SNOWFLAKE_TS_START` psql 变量 。 仅 `CONST_SNOWFLAKE_TS_BITS` **最高额** 使用时间戳的位数.
-   "C"表示"集群号". 若为 `CONST_SNOWFLAKE_CLUSTER_NO_BITS` 是0,则 此字段不存在,整个最左边的区域用于 时间戳.
-   "一"是"没有"的"岛"aka"雪花机器ID", 必须是独一无二的 在所有 在同一集群内的主节点.
-   "s"是"序列数位".

您可以自定义您的位字段的长度 `pg-snowflake.config.sql` 文档,见下文.

也可以将自定义参数传递给 `snowflake_gen()` 函数本身.

库一般安装在计划中 `public` 在每个 PostgreSQL 节点上.

## 安装

第一,复制副本 `pg-snowflake.config.sql.example` 改为 `pg-snowflake.config.sql` 内 应用程序和可选更新的根 `CONST_*` 根据你的需求.

```sql
\set CONST_SNOWFLAKE_TS_START 1475796139634
\set CONST_SNOWFLAKE_TS_BITS 35
\set CONST_SNOWFLAKE_CLUSTER_NO_BITS 5
\set CONST_SNOWFLAKE_ISLAND_NO_BITS 10
\set CONST_SNOWFLAKE_SEQ_BITS 14
```

然后用 psql 控制台运行 :

```sql
-- The library is typically installed in schema "public".
SET search_path TO public;

-- Optional: if you don't want to pass PG_SNOWFLAKE_CLUSTER_NO environment
-- variable, create this configuration function manually.
--CREATE OR REPLACE FUNCTION snowflake_cluster_no() RETURNS integer LANGUAGE sql
--  SET search_path FROM CURRENT AS 'SELECT 1';

-- Optional: if you don't want to pass PG_SNOWFLAKE_ISLAND_NO environment
-- variable, create this configuration function manually.
--CREATE OR REPLACE FUNCTION snowflake_island_no() RETURNS integer LANGUAGE sql
--  SET search_path FROM CURRENT AS 'SELECT 1';

-- Install the library to the current schema.
\ir .../pg-snowflake-up.sql
```

这个 `pg-snowflake-up.sql` 安装脚本将搜索 `pg-snowflake.config.sql` 父文件夹中的文件( 如果文件失败 ) 未找到).

默认情况下,集群编号读取自 `PG_SNOWFLAKE_CLUSTER_NO` 外壳掩体 变量。 这样,你可以指定它 例如1用于发展, 2用于中转, 3 用于生产环境(或3,4,5.) 不同AWS区域。 如果你出于某种原因不想要这种行为 定义 `snowflake_cluster_no()` 函数.

这同样适用于 `PG_SNOWFLAKE_ISLAND_NO` 财务报告和审定财务报表 `snowflake_island_no()` 函数.

## snowflake gen(\[seq name regclass\]\[,ts start bigint\]\[,ts bits\]\[,集群 no bits\]\[,岛屿 no bits\]\[,seq bits\]) \[,seq bits\]\] (中文(简体) )

生成 a [雪花识别标准](https://en.wikipedia.org/wiki/Snowflake_ID) 兼容的标识.

-   `seq_name`: 默认情况下,函数使用 `snowflake_seq` 要避免的顺序 在毫秒内(或在秒内)相撞,但也可以通过自己的碰撞 序列名称.
-   `ts_start`:可选的时代开始时间戳以毫秒为单位. 默认为 `CONST_SNOWFLAKE_TS_START` (参见pg-snowflake.config.sql.example.).
-   `ts_bits`:时间戳部分的可选位数. 默认为 `CONST_SNOWFLAKE_TS_BITS`。 。 。 .
-   `cluster_no_bits`:集群编号部分的可选位数. 默认为 `CONST_SNOWFLAKE_CLUSTER_NO_BITS`。 。 。 .
-   `island_no_bits`:岛号部分的可选位数. 默认 改为 `CONST_SNOWFLAKE_ISLAND_NO_BITS`。 。 。 .
-   `seq_bits`:序列部分的可选位数. 默认为 `CONST_SNOWFLAKE_SEQ_BITS`。 。 。 .

默认格式是 `t35-C5-i10-s14`。要自定义,请使用命名的 PostgreSQL 参数语法,例如:

```sql
SELECT snowflake_gen(ts_bits:=30, cluster_no_bits:=10, island_no_bits:=10);
```

此函数的好处是,您可以通过 ID 命令获取大致 以时间戳为基础的顺序,甚至跨越微硬/节点. 它还在 (原始内容存档于2018-10-21). bigint id experient. 缺点是 ID 不容易解析 只是人类的眼睛,因为它是位数基(不是以小数位数为基数).

生成的 id 示例 :

-   `4705186322862407685`

## 常见问题

### @clickup/pg-snowflake 是什么？

生成带有可选集群编号的 Snowflake ID 标准相容 ID注意：该包已被作者标记为弃用——This package is no longer maintained

### 如何安装 @clickup/pg-snowflake？

在项目目录运行 npm install @clickup/pg-snowflake，或使用 pnpm add / yarn add / bun add。

### @clickup/pg-snowflake 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/clickup\_\_pg-snowflake 是否存在。

### @clickup/pg-snowflake 可以商用吗？

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

### @clickup/pg-snowflake 的下载量有多少？

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

### @clickup/pg-snowflake 还在维护吗？

最新版本 2\.15\.3 发布于 2025/06/19（1\.4 年前）；至今共发布 3 个版本，其中过去 12 个月发布了 0 个；首次发布于 2025/06/18。作者已将其标记为弃用，新项目建议寻找替代方案。

