# Pigsty v4.5：575 扩展、Kafka、MySQL、Valkey 与 Silo

LLMS index: [llms.txt](/llms.txt)

---

Pigsty **v4.5.0** 是一次横跨数据服务、PostgreSQL 生态、自动化安全与软件供应链的功能版本：新增 Kafka KRaft 与 MySQL 8.4 试点模块，为 REDIS 模块加入 Valkey 引擎，将 MINIO 模块收敛到 Silo，并把已打包 PostgreSQL 扩展从 531 个推进到 575 个。

本次全量审阅以 `v4.4.0`（`2d5a45f7`，2026-07-10）到 `main` 的 `dab5dba3`（2026-08-14）为边界，共覆盖 **100 个提交、416 个文件、42,058 行新增与 15,984 行删除**。完整源码差异见 [`v4.4.0...dab5dba3`](https://github.com/pgsty/pigsty/compare/v4.4.0...dab5dba333a070d96fde1f9feb41761148f2be8c)。其中相当一部分结构化差异来自 Grafana Dashboard API v2 的整套重导出。

## 版本亮点

- **575 个 PostgreSQL 扩展**：目录新增 46 项、移除 2 项，净增 44；大量 Rust 扩展迁移到 pgrx 0.19.1，RPM/DEB 平台覆盖与包名映射同步刷新。
- **Kafka KRaft 模块**：新增 Pigsty 原生 Kafka 编排，支持多集群、动态加入与退役、SCRAM-SHA-512/TLS、凭据轮换、健康门禁、监控告警与 4 个 Grafana 仪表盘。
- **MySQL 8.4 模块**：新增单机与三节点 InnoDB Cluster、MySQL Router、XtraBackup、账户与数据库置备、参数保护、监控告警与保守移除流程。
- **Valkey 与 Silo**：REDIS 模块增加 `redis_type: valkey`；MINIO 模块当前只接受 `minio_type: silo`。开发周期内出现过的 RustFS 后端已在最终基线前撤回。
- **更安全的集群编排**：PGSQL、REDIS、MINIO、KAFKA 与 MYSQL 按显式集群身份选择成员；etcd 委派、DBSU 密钥交换、PITR、备份标记和移除流程均进一步收紧。
- **可观测性升级**：新增 Kafka 与 MySQL 面板，MinIO/Silo 迁移到 Metrics V3，`pg_exporter` 配置升级到 1.4 系列并补齐 PG19、事务年龄、锁、复制与清理压力指标。
- **仓库与供应链升级**：本地仓库改由 SOW 原子生成，移除伪造 ModuleMD；离线包可携带版本化源码包；Infra 重打包统一 SHA-256 固定输入、SPDX 许可证与 `1PGSTY` release。
- **51 套独立配置模板**：新增 `demo/kafka`、`demo/mysql` 与八节点 `ha/octo`，并将 `ha/trio` 更新为三节点 Silo 紧凑高可用拓扑。

## Kafka KRaft 试点模块

新的 [Kafka 模块](/docs/kafka/) 使用节点状态作为权威来源，以动态 KRaft 模式管理 Broker 与 Controller。它既支持同一清单中的多个 Kafka 集群，也支持直接运行 `kafka.yml`；不完整的 `--limit` 会被拒绝，避免只更新部分仲裁成员。

- 节点持久化权威 manifest 与 secrets，支持动态 Controller 加入、Broker 准入、成员退役和故障成员三阶段替换。
- 支持 SCRAM-SHA-512、TLS、证书和凭据轮换，并在变更后执行分区健康与协议自检。
- `kafka-rm.yml` 强制要求非空 `-l/--limit`，在停服前校验绝对数据目录、目标身份与部分退役所需的幸存锚点。
- 新增 JMX Exporter、Kafka Exporter、Victoria 抓取与告警规则，以及 Overview、Instance、Topic、Consumer 四套 Grafana 面板。

Kafka 仍属于试点模块。客户端必须能够直接解析并访问每个 Broker；Kafka 数据平面不能放在 HAProxy、VIP 或普通四层负载均衡器之后。

## MySQL 8.4 试点模块

新的 [MySQL 模块](/docs/mysql/) 面向固定的 MySQL 8.4 LTS 平台，支持单节点实例与三节点 InnoDB Cluster，并提供 MySQL Shell、MySQL Router、TLS、用户/数据库置备、XtraBackup 定时全备与统一监控。

- 初始化流程校验 1 或 3 个成员，建立集群、协调 Router，并以幂等方式处理已有成员和部分状态。
- `mysql_parameters` 会保护复制、TLS 与平台保留参数，不能通过 `loose_`、`skip_`、`disable_` 或 `enable_` 前缀绕过限制。
- `mysql_databases` 仅接受 `name`、`encoding` 与 `collate`，数据库固定使用 `DEFAULT ENCRYPTION='N'` 创建。
- 移除流程先验证目标、仲裁与成员状态，再依次隔离、停服和清理；与其他模块不同，`mysql-rm.yml` 遇到无 MySQL 身份的目标会失败关闭。
- 新增 Overview、Cluster、Instance、Replication、Alert 五套 Grafana 面板及 mysqld_exporter 告警。

## Valkey、Silo 与 Mongo 模式

### Redis / Valkey

REDIS 模块保留 Redis 作为默认引擎，可通过 `redis_type: valkey` 显式选择 Valkey。Valkey 使用 `valkey-server` / `valkey-cli` 软件包，但配置路径、监控 job、服务接口和模块参数继续沿用 `redis` 命名，以兼容既有清单与仪表盘。

Redis/Valkey 的 systemd 单元改为 `Type=notify`，启动超时提高到 1800 秒；拓扑、主从关系、密码处理、标签化移除和重建保护也得到加强。

### MINIO / Silo

MINIO 仍是兼容模块名，但 v4.5 的角色部署并且只部署 [Silo](/docs/minio/)；`minio_type` 当前唯一合法值为 `silo`。Silo 继续兼容 S3/Admin API、`/minio/*` 路由、`MINIO_*` 环境变量和既有磁盘格式，但软件包、二进制与 systemd 服务名已经改为 `silo`。

- 启动流程同时检查 systemd Invocation ID、`ActiveState=active` 与 Silo 集群健康，最长等待约 600 秒，避免把旧进程状态误判为本次启动成功。
- 对象存储成员按 `minio_cluster` 聚合，清单组名可以不同；多集群清单应分别设置 `minio_alias`、`minio_domain` 与 `minio_endpoint`。
- `ha/trio` 从单节点对象存储改为三节点单盘 Silo，使用 EC:1，并通过 VIP 与 HAProxy 暴露 9002 端口；模板显式声明三个默认用户，确保 `configure -g` 后 S3 凭据一致。
- 分布式 Silo 要求 `/data/minio` 位于独立文件系统；如果它只是根文件系统下的普通目录，Silo 会拒绝使用。
- 本周期曾加入 RustFS 后端，随后在最终源码中完整撤回。Infra 仓库可以保留 RustFS/MinIO 软件包，但它们都不是 v4.5 MINIO 模块支持的后端。

### PostgreSQL Mongo 模式

独立 FERRET 角色与 `mongo.yml` 剧本被移除，能力拆分为 [PostgreSQL Mongo 模式](/docs/conf/mongo/) 与 [FerretDB Docker APP](/docs/app/ferretdb/)：PostgreSQL/DocumentDB 负责数据层，Docker Compose 中的 FerretDB 负责 MongoDB 协议层。旧的 FerretDB systemd 服务、专用监控抓取和 Mongo 仪表盘不再随 Pigsty 提供。

## 编排、安全与生命周期

- `deploy.yml`、`slim.yml` 以及 PGSQL、REDIS、MINIO、KAFKA、MYSQL 初始化剧本按对应的 `*_cluster` 身份跳过无关主机；PGSQL、REDIS、MINIO、KAFKA 移除剧本采用同样规则。
- PGSQL 配置、PITR 与移除仅在规范的 `etcd` 组存在且非空时委派；DBSU SSH 密钥按实际 `pg_cluster_members` 交换，覆盖 Citus 等跨清单组拓扑。
- PITR 与移除只清理以 `/<cluster>/` 为边界的 etcd 子树，避免集群名互为前缀时误删；初始 pgBackRest 备份也只在命令成功后写入 `initial.done`。
- 各模块移除流程先停服务再清理数据；Kafka、MySQL 与对象存储额外加入目录、仲裁、幸存成员和集群身份检查。
- `pgsql.yml` 的完整剧本被明确标记为“仅用于首次初始化”：它会重启 Patroni/PostgreSQL 并重新应用托管配置与 bootstrap SQL，不应被当作已初始化集群的日常收敛命令。
- Pigsty 渲染的 systemd 单元统一放在 `/etc/systemd/system`，敏感配置、环境文件、密钥和特权脚本权限进一步收紧；Debian/Ubuntu 安装期间会抑制 Silo、Redis/Valkey 与遗留日志服务被包脚本提前启动。
- HAProxy 采用 `/etc/haproxy/haproxy.cfg` 加 `/etc/haproxy/conf.d` 的固定布局，使用上游 master-worker、master socket 与 `Type=notify`；dnsmasq 使用动态绑定、本地回答私网 PTR，并处理 INFRA 初始化后才出现的节点地址。
- 节点时间同步在 Debian/Ubuntu 写入原生 `/etc/chrony/chrony.conf`，EL 继续使用 `/etc/chrony.conf`；首次校时策略调整为偏差超过 10 秒时允许前 120 次更新步进。

## PostgreSQL 内核与扩展

- 默认 PostgreSQL 随仓库更新到 **18.6**；四套标准 Patroni 模板增加 `output_plugin_libraries` 白名单，允许 `pgoutput`、`test_decoding` 与 `wal2json`，旧版本会由 Patroni 自动过滤不支持的参数。
- PostgreSQL 19 beta 模板补齐 pgBackRest 2.59 与定时备份支持；该模板仍不默认安装扩展，仅用于 PG19 试用。
- Percona PostgreSQL 18 TDE 使用集群模式，并继续采用 Pigsty 私有安装前缀以避免与原生 PostgreSQL 冲突。
- IvorySQL 补齐默认数据库初始化，并在标准负载模板中启用兼容的 WAL 压缩设置。
- PostgreSQL 事实加载器、各平台 `package_map` 与默认扩展组同步刷新，修复 PGDG/YUM 命名和缺失包。

以 Pig `v1.5.1`（531 项）与 `v1.7.0`（575 项）的内置目录快照复核，本周期新增 46 个扩展、移除 2 个，净增 44：

- 新增 32 个主扩展：`argm`、`cat_tools`、`cron_utils`、`fbsql`、`oidc_validator`、`online_advisor`、`pg_cjk_parser`、`pg_column_tetris`、`pg_describe`、`pg_disorder`、`pg_fts`、`pg_jieba`、`pg_kpart`、`pg_lake`、`pg_local_cache`、`pg_mentat`、`pg_oidc_validator`、`pg_policy`、`pg_roast`、`pg_tiktoken_c`、`pg_turbovec`、`pg_vault_tde`、`pgcontext`、`pgfr_record`、`pgmemento`、`pgmonitor`、`pgsqlmock`、`pgwasm`、`plruby`、`plx`、`postbis`、`qdgc`。
- 新增 13 个子扩展：`hstore_plruby`、`jsonb_plruby`、`ltree_plruby`、`pg_extension_base`、`pg_extension_updater`、`pg_lake_copy`、`pg_lake_engine`、`pg_lake_iceberg`、`pg_lake_table`、`pg_map`、`pgcontext_pgvector`、`pgfr_analyze`、`qdgc_postgis`。
- 新增 1 个 PGDG 扩展：`pg_statviz`；它保留在在线目录，但不进入默认安装组。
- 移除 `pg_analytics` 与 `spat`：前者已经归档，后者是已废弃的 alpha 项目。

此外，`emailaddr`、`explain_ui`、Rust 版 `oidc_validator`、`pg_summarize` 与 `smlar` 因上游没有提供可分发许可证而从默认安装组移出；软件包与目录记录仍可保留。`pg_relation_sql` 是独立 SQL 工具包，不支持 `CREATE EXTENSION`，因此列入打包变更表但不计入 575 个扩展。

### 扩展软件包更新表

下表把 v4.4.0 之后的 RPM 与 DEB 批次按扩展名合并为“旧版本 → 最终版本”的四列终态，共 207 个打包条目，并补充 2 个目录移除项。RPM/DEB 版本不同时分别标注；版本未变化表示发生了重构建、包名、许可证元数据或平台覆盖变化。

7 月 10 日后的第一份打包日志覆盖 7 月 7–24 日且没有逐项日期，因此整批纳入，避免遗漏发布后完成的 pgrx 0.19.1 重构建与矩阵修复。版本和实际平台可用性以最终仓库索引为准。

| 扩展名 | 旧版本 | 新版本 | 备注 |
|:---|:---|:---|:---|
| `age` | RPM：`1.7.0` | RPM：`1.8.0` | 仅 RPM；PG18 为 1.8.0-rc0，PG17 为 1.7.0 |
| `anon` | `3.1.1` | `3.1.3` | pgrx 0.19.1 |
| `argm` | `-` | `1.1.1` |  |
| `asn1oid` | RPM：`1.6` | RPM：`1.6` | 仅 RPM；许可证元数据改为 GPL-3.0-or-later |
| `babelfishpg_money` | `1.1.0` | `1.1.0` | 新增 PG18 支持 |
| `babelfishpg_tds` | `1.0.0` | `1.0.0` | 新增 PG18 支持 |
| `babelfishpg_tsql` | `5.5.0` | `5.4.0` | 目录版本纠正为 5.4.0；PG17–18 |
| `biscuit` | `2.4.1` | `3.0.0` | PG16–18；从 2.x 升级后必须 REINDEX |
| `block_copy_command` | `0.1.5` | `0.1.5` | pgrx 0.19.1 |
| `cat_tools` | `-` | `0.3.0` | 纯 SQL 扩展 |
| `citus` | `14.1.0` | `14.2.0` | PG16–18；包含 citus_columnar；补齐 EL10/PG14 RPM |
| `convert` | `0.1.0` | `0.1.0` | pgrx 0.19.1 |
| `cron_utils` | `-` | `0.1.0` | 纯 SQL 扩展 |
| `dbt2` | `0.61.7` | `0.61.7` | 新增 DEB PG14–18 与 EL8 RPM PG17–18 |
| `decoder_raw` | `1.0` | `1.0` | 新增 EL10/Debian 13；PG14–16 |
| `decoderbufs` | `3.5.0` | RPM：`3.5.0`<br>DEB：`3.6.0` | RPM 保持 3.5.0，DEB 更新到 3.6.0 |
| `documentdb` | `0.113` | `0.114` | PG15–18；扩展至 16 个平台 |
| `documentdb_core` | `0.113` | `0.114` | PG15–18；扩展至 16 个平台 |
| `documentdb_distributed` | `0.113` | `0.114` | PG15–18；扩展至 16 个平台 |
| `documentdb_extended_rum` | `0.113` | `0.114` | PG15–18；扩展至 16 个平台 |
| `emailaddr` | `0` | `0` | 上游未提供许可证，已从默认安装组移除 |
| `emaj` | RPM：`-`<br>DEB：`4.7.1` | `5.0.0` | RPM 包名改为 e-maj，并提供/废弃旧 emaj 名称 |
| `etcd_fdw` | `0.0.1` | `0.0.1` | pgrx 0.19.1 |
| `explain_ui` | `0.0.2` | `0.0.2` | pgrx 0.19.1 重构建；上游未提供许可证，已从默认安装组移除 |
| `faker` | `0.5.3` | `0.5.3` | 补齐 RPM/DEB 平台；Debian 12 与 Ubuntu 22.04 使用 python3-fake-factory 22.0.0 |
| `fbsql` | `-` | `0.1.0` | PG16–18；依赖 PL/R |
| `gb18030_2022` | `1.0` | `1.0` | IvorySQL 5.4；仅 PG18 |
| `graph` | `0.1.7` | `1.0.0` | pggraph；pgrx 0.19.1 |
| `h3` | `4.2.3` | `4.2.3` | 新增 EL8 x86_64 / PG17–18 RPM |
| `hdfs_fdw` | `2.3.3` | `2.3.3` | 新增 DEB PG14–18 |
| `hstore_pllua` | `2.0.12` | `2.0.12` | 新增 6 个 EL RPM 目标 |
| `hstore_plluau` | `2.0.12` | `2.0.12` | 新增 6 个 EL RPM 目标 |
| `http` | `1.7.1` | `1.7.2` |  |
| `hunspell_cs_cz` | `1.0` | `1.0` | hunspell 合包；10 词典 |
| `hunspell_de_de` | `1.0` | `1.0` | hunspell 合包；10 词典 |
| `hunspell_en_us` | `1.0` | `1.0` | hunspell 合包；10 词典 |
| `hunspell_fr` | `1.0` | `1.0` | hunspell 合包；10 词典 |
| `hunspell_ne_np` | `1.0` | `1.0` | hunspell 合包；10 词典 |
| `hunspell_nl_nl` | `1.0` | `1.0` | hunspell 合包；10 词典 |
| `hunspell_nn_no` | `1.0` | `1.0` | hunspell 合包；10 词典 |
| `hunspell_pt_pt` | `1.0` | `1.0` | 补齐 16 平台；pt_pt.stop 避免内核冲突 |
| `hunspell_ru_ru` | `1.0` | `1.0` | hunspell 合包；10 词典 |
| `hunspell_ru_ru_aot` | `1.0` | `1.0` | hunspell 合包；10 词典 |
| `imgsmlr` | `1.0` | `1.0` | 新增 EL10/Debian 13 |
| `ivorysql_ora` | `1.0` | `1.0` | IvorySQL 5.4；仅 PG18 |
| `jdbc_fdw` | `0.4.0` | `0.5.0` | 包版本 0.5.0，SQL 版本 1.2 |
| `jsonschema` | `0.1.9` | `0.1.9` | pgrx 0.19.1 |
| `mobilitydb` | `1.3.0` | `1.3.0` | 补齐 6 个 EL RPM 目标与 Ubuntu 22.04 / PG18 DEB |
| `mobilitydb_datagen` | `1.3.0` | `1.3.0` | 随 mobilitydb 同步补齐 RPM/DEB 平台 |
| `nominatim_fdw` | `1.3` | `2.1.0` |  |
| `numeral` | RPM：`1.3` | RPM：`1.3` | 仅 RPM；包名改为 postgresql-numeral；许可证元数据改为 GPL-2.0-or-later |
| `odbc_fdw` | `0.5.1` | `0.6.1` | 包版本 0.6.1，SQL 版本 0.5.2 |
| `ogr_fdw` | `1.1.8` | `1.1.9` |  |
| `oidc_validator` | `-` | `0.1.0` | 仅 PG18；上游未提供许可证，已从默认安装组移除 |
| `omni` | `0.2.14` | `0.2.14` | EL10 支持 PG14–18；其余现有目标仅 PG18 |
| `online_advisor` | `-` | `1.0` |  |
| `ora_btree_gin` | `1.0` | `1.0` | IvorySQL 5.4；仅 PG18 |
| `ora_btree_gist` | `1.0` | `1.0` | IvorySQL 5.4；仅 PG18 |
| `pg_ai_query` | RPM：`0.1.1` | RPM：`0.1.1` | 仅 EL9/10 RPM；要求 GCC 13 / OpenSSL 3 |
| `pg_analytics` | `0.3.7` | `-` | 上游项目已归档，移出已打包扩展目录 |
| `pg_base58` | `0.0.1` | `0.0.1` | pgrx 0.19.1 |
| `pg_bestmatch` | `0.0.2` | `0.0.2` | pgrx 0.19.1 |
| `pg_cardano` | `1.2.0` | `1.2.0` | pgrx 0.19.1；PG15–18 |
| `pg_cjk_parser` | `-` | `0.1.0` |  |
| `pg_clickhouse` | `0.3.2` | `0.10.0` |  |
| `pg_column_tetris` | `-` | `0.1.0` | 纯 SQL |
| `pg_command_fw` | `0.1.0` | `0.1.0` | pgrx 0.19.1；PG15–18 |
| `pg_csv` | RPM：`1.0.1` | RPM：`1.0.2` | 新增 RPM；包版本 1.0.2，SQL 版本 1.0.1 |
| `pg_dbms_errlog` | `2.2` | `2.4` |  |
| `pg_dbms_job` | `2.0` | `2.0` | 新增 DEB 包 |
| `pg_dbms_lock` | `2.0` | `2.0` | 新增 DEB 包 |
| `pg_dbms_metadata` | `1.0.0` | `1.0.0` | 新增 DEB 包，并补齐 EL8 aarch64 / PG15 RPM |
| `pg_describe` | `-` | `1.0.0` | PG17–18 |
| `pg_disorder` | `-` | `0.1.0` |  |
| `pg_durable` | `0.2.2` | `0.2.3` | pgrx 0.19.1 |
| `pg_enigma` | `0.5.0` | `0.5.0` | pgrx 0.19.1 |
| `pg_eviltransform` | `0.0.2` | `0.0.4` | pgrx 0.19.1 |
| `pg_extension_base` | `-` | `3.4` | pg_lake 3.4 子扩展；PG16–18；RPM 仅 EL9/10 |
| `pg_extension_updater` | `-` | `3.4` | pg_lake 3.4 子扩展；PG16–18；RPM 仅 EL9/10 |
| `pg_fact_loader` | `2.0.1` | `2.0.1` | U26 DEB |
| `pg_failover_slots` | `1.2.1` | `1.2.1` | 需预加载；许可证元数据改为 PostgreSQL |
| `pg_fts` | `-` | `0.2.0` | PG17–18 |
| `pg_geohash` | `1.0` | `1.0` | 修复 SQL 文件名与目标 PostgreSQL ABI；许可证元数据改为 MIT |
| `pg_get_functiondef` | `1.0` | `1.0` | IvorySQL 5.4；仅 PG18 |
| `pg_graphql` | `1.6.1` | `1.6.1` | pgrx 0.19.1 |
| `pg_idkit` | `0.4.0` | `0.4.0` | pgrx 0.19.1 |
| `pg_ivm` | `1.14` | `1.15` |  |
| `pg_jieba` | `-` | `1.1.0` | 包版本 2.0.1，SQL 版本 1.1.0 |
| `pg_jsonschema` | `0.3.4` | `0.3.4` | pgrx 0.19.1 |
| `pg_kazsearch` | `2.2.0` | `2.3.0` | pgrx 0.19.1；PG16–18 |
| `pg_kpart` | `-` | `1.0` |  |
| `pg_lake` | `-` | `3.4` | PG16–18；RPM 仅 EL9/10 |
| `pg_lake_copy` | `-` | `3.4` | pg_lake 3.4 子扩展；PG16–18；RPM 仅 EL9/10 |
| `pg_lake_engine` | `-` | `3.4` | pg_lake 3.4 子扩展；PG16–18；RPM 仅 EL9/10 |
| `pg_lake_iceberg` | `-` | `3.4` | pg_lake 3.4 子扩展；PG16–18；RPM 仅 EL9/10 |
| `pg_lake_table` | `-` | `3.4` | pg_lake 3.4 子扩展；PG16–18；RPM 仅 EL9/10 |
| `pg_later` | `0.4.0` | `0.4.0` | pgrx 0.19.1 |
| `pg_local_cache` | `-` | `1.3.0` | 需预加载；仅支持单主 |
| `pg_map` | `-` | `3.4` | pg_lake 3.4 子扩展；PG16–18；RPM 仅 EL9/10 |
| `pg_mentat` | `-` | `1.5.7` |  |
| `pg_mooncake` | `0.2.0` | `0.2.0` | pgrx 0.19.1 |
| `pg_net` | `0.20.3` | EL8/9、U22：`0.9.2`<br>其余：`0.20.5` | EL8/9 与 Ubuntu 22.04 保持 0.9.2；其余目标为 0.20.5 |
| `pg_oidc_validator` | `-` | `1.1.0` | 仅 PG18；新增 discovery_url_override；RPM 仅 EL10 |
| `pg_parquet` | `0.5.1` | `0.5.1` | pgrx 0.19.1 |
| `pg_partman` | RPM：`5.4.0`<br>DEB：`5.4.2` | `5.5.0` | DEB 包名为 postgresql-PGVERSION-partman |
| `pg_pinyin` | `0.0.4` | `0.0.5` | pgrx 0.19.1 |
| `pg_policy` | `-` | `0.1.0` | 纯 SQL |
| `pg_polyline` | `0.0.1` | `0.0.1` | pgrx 0.19.1 |
| `pg_rational` | `0.0.2` | `0.0.3` | RPM 由 Pigsty 构建，DEB 来自 PGDG |
| `pg_readme` | `0.7.0` | RPM：`0.7.0`<br>DEB：`0.7.1` | RPM 保持 PGDG 0.7.0；DEB 为 0.7.1 并包含测试子扩展 |
| `pg_relation_sql` | `-` | `0.2.2` | 独立 SQL 工具包，不支持 CREATE EXTENSION；不计入 575 个扩展 |
| `pg_render` | `0.1.3` | `0.1.3` | pgrx 0.19.1 |
| `pg_rewrite` | `2.0.0` | `2.2` | RPM/DEB 包名统一为 `postgresql-PGVERSION-pg-rewrite` |
| `pg_roast` | `-` | `1.0` |  |
| `pg_rrf` | `0.0.3` | `0.0.3` | pgrx 0.19.1 |
| `pg_search` | `0.24.0` | `0.25.2` | PG15–18；pgrx 0.19.1；需预加载；新增 pgvector/OpenBLAS 依赖 |
| `pg_session_jwt` | `0.5.0` | `0.5.0` | pgrx 0.19.1 |
| `pg_smtp_client` | `0.2.1` | `0.2.1` | pgrx 0.19.1 |
| `pg_squeeze` | `1.9.2` | `1.9.4` |  |
| `pg_statement_rollback` | `1.5` | `1.6` |  |
| `pg_statviz` | `-` | RPM：`0.9`<br>DEB：`1.1` | 非默认包组；RPM 为 0.9、DEB 为 1.1，平台覆盖不同 |
| `pg_strict` | `1.0.5` | `1.0.5` | pgrx 0.19.1 |
| `pg_strom` | `6.1` | `6.1` | 仅 EL10 x86_64 / PG14；扩展 SQL 版本 3.5 |
| `pg_summarize` | `0.0.1` | `0.0.1` | pgrx 0.19.1 重构建；上游未提供许可证，已从默认安装组移除 |
| `pg_tde` | `2.1` | `2.2` | Percona；PG17–18 |
| `pg_tiktoken` | `0.0.1` | `0.0.1` | pgrx 0.19.1 |
| `pg_tiktoken_c` | `-` | `1.1` |  |
| `pg_tokenizer` | `0.1.1` | `0.1.1` | pgrx 0.19.1 |
| `pg_trickle` | `0.81.0` | `0.81.0` | pgrx 0.19.1；PG18 |
| `pg_turbovec` | `-` | `1.29.0` | pgrx 0.19.1 |
| `pg_uuid_v8` | `1.0.0` | `1.1.0` | 含 1.0 至 1.1 升级脚本 |
| `pg_vault_tde` | `-` | `1.7.0` | PG17–18；需预加载；RPM 仅 EL9/10 |
| `pg_wait_sampling` | RPM：`1.1.11` | RPM：`1.1.11` | 新增 RPM；包版本 1.1.11，SQL 版本 1.1 |
| `pg_when` | `0.1.9` | `0.1.10` | 打包改用 pgrx 0.19.1 |
| `pgactive` | DEB：`2.1.7` | DEB：`2.1.7` | 仅 DEB；修复 PG14–18 构建 |
| `pgauditlogtofile` | `1.8.4` | `1.8.5` |  |
| `pgautofailover` | `2.2` | `2.2` | 新增 6 个 EL / PG18 RPM |
| `pgbouncer_fdw` | `1.4.0` | `1.4.0` | 新增 DEB 包 |
| `pgbson` | `2.0.2` | `2.1.0` | RPM：RPM 包名 postgresbson；DEB：源码包 postgresbson |
| `pgclone` | `4.3.2` | `4.4.2` |  |
| `pgcontext` | `-` | `0.2.0` | PG17–18；pgrx 0.19.1；可选 pgvector 兼容桥 |
| `pgdd` | `0.6.1` | `0.6.1` | pgrx 0.19.1 |
| `pgedge` | RPM：`18.4` | RPM：`18.4` | 仅 RPM；修复 PG15–18 ABI |
| `pgextwlist` | `1.19` | `1.20` |  |
| `pgfr_analyze` | `-` | `2.29.2` | pg_flight_recorder 子扩展；PG15–18 |
| `pgfr_record` | `-` | `2.29.2` | pg_flight_recorder；PG15–18 |
| `pgl_ddl_deploy` | `2.2.1` | `2.2.1` | 补齐 PG18 DEB 与 Ubuntu 26.04 / PG14–17 |
| `pglinter` | `2.0.0` | `2.0.0` | pgrx 0.19.1 |
| `pglite_fusion` | `0.0.6` | `0.0.6` | pgrx 0.19.1 |
| `pglogical_ticker` | `1.4.1` | `1.4.1` | 补齐 6 个 EL RPM / PG14–17 |
| `pgmemcache` | `2.3.0` | `2.3.0` | 补齐 EL8 aarch64 / PG14–15 RPM |
| `pgmemento` | `-` | `0.7.4` | 纯 SQL 扩展 |
| `pgml` | `2.10.0` | `2.10.0` | 新增 EL10、Debian 13、Ubuntu 26.04；PG14–17 |
| `pgmnemo` | `0.12.1` | `0.16.1` | PG17–18；依赖 pgvector 0.7.0 或更高版本 |
| `pgmonitor` | `-` | `2.2.0` |  |
| `pgmp` | `-` | `1.0.6` | 依赖 GMP |
| `pgmq` | `1.11.1` | `1.12.0` |  |
| `pgmqtt` | `0.3.0` | `0.4.1` | pgrx 0.19.1 |
| `pgnodemx` | RPM：`1.7` | RPM：`2.0.1` | 仅 RPM；包版本 2.0.1，SQL 版本 2.0；加强 cgroup 安全 |
| `pgpcre` | RPM：`0.20190509` | RPM：`0.20190509` | 仅 EL8/9 RPM |
| `pgrdf` | `0.6.4` | `0.6.20` | pgrx 0.19.1 |
| `pgsentinel` | `1.4.1` | RPM：`1.4.2`<br>DEB：`1.4.0`（U26：`1.4.1`） | RPM 1.4.2；DEB 1.4.0；Ubuntu 26.04 为 1.4.1 |
| `pgsmcrypto` | `0.1.1` | `0.1.1` | pgrx 0.19.1 |
| `pgspider_ext` | `1.3.0` | `1.3.0` | 补齐 PG18；DEB 支持 PG15–18 |
| `pgsqlmock` | `-` | `1.0.1` |  |
| `pgwasm` | `-` | `0.1.0` |  |
| `pgx_ulid` | `0.2.3` | `0.2.3` | pgrx 0.19.1 |
| `pgzint` | DEB：`-` | DEB：`0.2.0` | 仅 Debian 13 / Ubuntu 26.04 DEB；依赖 Zint 2.14 或更高版本 |
| `plisql` | `1.0` | `1.0` | IvorySQL 5.4；仅 PG18 |
| `pllua` | `2.0.12` | `2.0.12` | 补齐 6 个 EL / PG18 及 EL8 aarch64 / PG14–15 RPM |
| `plpgsql_check` | `2.9.2` | `2.10.4` | 预加载改为可选 |
| `plproxy` | `2.11.0` | `2.12.0` |  |
| `plprql` | `18.0.1` | `18.0.1` | pgrx 0.19.1 |
| `plruby` | `-` | `2.5.0` | 包含 jsonb_plruby、hstore_plruby 与 ltree_plruby |
| `plx` | `-` | `1.3.1` |  |
| `polardb-17` | `17.10.1.0-1PIGSTY` | `17.10.1.0-2PGSTY` | PG17 重构建；release 后缀由 PIGSTY 统一为 PGSTY |
| `polarstore` | `1.2.42-1PIGSTY` | `1.2.42-2PGSTY` | 重构建；release 后缀由 PIGSTY 统一为 PGSTY |
| `postbis` | `-` | `1.0` | 带 PG14–18 兼容补丁 |
| `powa` | `5.1.2` | RPM：`5.1.0`<br>DEB：`5.2.0` | DEB 为 5.2.0，RPM 保持 5.1.0 |
| `pre_prepare` | RPM：`0.9` | RPM：`0.9` | 仅 RPM；许可证元数据改为 PostgreSQL |
| `provsql` | `1.10.0` | `1.12.0` |  |
| `q3c` | RPM：`2.0.2`<br>DEB：`2.0.4` | `2.0.5` | 最终 RPM/DEB 均为 PGDG 2.0.5 |
| `qdgc` | `-` | `0.1.0` | 包含 qdgc_postgis 子扩展 |
| `rdf_fdw` | `2.6.0` | `2.7.0` |  |
| `rdkit` | `202503.6` | `202503.6` | 不同平台保留 202303.3 或 202503.6，运行时版本未统一变化 |
| `re2` | `0.3.0` | `0.4.1` | PG16–18 |
| `smlar` | `1.0` | `1.0` | 上游未提供许可证，已从默认安装组移除 |
| `snowflake` | `2.4` | `2.5.0` | pgEdge；PG15–18 |
| `spat` | `0.1.0a4` | `-` | 上游已废弃的 alpha 项目，移出已打包扩展目录 |
| `spock` | `5.0.6` | `5.0.10` | pgEdge；PG15–18 |
| `sqlite_fdw` | `2.5.0` | `2.5.0` | 补齐 PG18；EL8 兼容系统 SQLite |
| `sslutils` | `1.4` | `1.4` | 新增 EL8 双架构 / PG18 RPM |
| `system_stats` | DEB：`4.0` | DEB：`4.1` | 仅 DEB；覆盖 10 个 DEB 目标 |
| `tdigest` | `1.4.3` | `1.4.4` |  |
| `timescaledb` | `2.28.2` | `2.29.1` | PG16–18 |
| `timescaledb_toolkit` | `1.23.0` | `1.23.0` | pgrx 0.19.1；PG15–18 |
| `timeseries` | DEB：`0.2.1` | DEB：`0.2.1` | 仅 DEB；修正 partman/cron 推荐依赖与文档 |
| `typeid` | `0.3.0` | `0.3.0` | pgrx 0.19.1 |
| `tzf` | `0.3.0` | `0.3.0` | pgrx 0.19.1 |
| `unit` | `7.10` | `7.10` | 许可证元数据改为 GPL-3.0-or-later |
| `uri` | RPM：`1.20251029` | RPM：`1.20251029` | 仅 RPM；包名改为 pguri，并提供/废弃旧 pg_uri 名称 |
| `vchord` | `1.1.1` | `1.1.1` | pgrx 0.19.1 |
| `vchord_bm25` | `0.3.0` | `0.3.0` | pgrx 0.19.1 |
| `vector` | `0.8.4` | `0.8.6` |  |
| `vectorize` | `0.26.2` | `0.26.2` | pgrx 0.19.1 |
| `vectorscale` | `0.9.0` | `0.9.0` | pgrx 0.19.1 |
| `wal2mongo` | `1.0.7` | `1.0.7` | 补齐 PG17–18 |
| `wrappers` | `0.6.1` | `0.6.2` | pgrx 0.19.1 |
| `zlog` | `1.2.18-1PIGSTY` | `1.2.18-2PGSTY` | 重构建；release 后缀由 PIGSTY 统一为 PGSTY |

## 可观测性

- 整套 Grafana 仪表盘通过 Pig/Grafana 工具重导出为 Dashboard API v2；新增 4 个 Kafka 与 5 个 MySQL 面板，并更新 Node、PostgreSQL、Redis 与 Infra 面板的链接、变量和布局。
- MinIO/Silo 的 Overview 与 Instance 面板迁移到 Metrics V3；Victoria 统一抓取 `/minio/metrics/v3`，并丢弃带非空 `bucket` 标签的高基数样本。
- `pg_exporter` 配置升级到 1.4.0，并修复 1.4.1 `pg_subrel` 查询产生重复时间序列的问题。
- PG19 新增 `pg_sub_19`、`pg_recovery_state`、`pg_wal_19`、`pg_lock_stat` 与 `pg_vacuum_score` 采集器；PG10+ 增加 `pg_xact_age` 事务年龄直方图，并补齐复制槽 `idle_timeout` 与 WAL Receiver `connecting` 状态编码。
- Kafka JMX/协议 Exporter 与 MySQL Exporter 纳入统一服务发现、Victoria 抓取和告警规则；journald 日志缺少 `PRIORITY` 字段时也能安全处理。

## 仓库、离线包与供应链

- REPO 与 CACHE 角色改用 `sow create --pigsty` 原子生成 DNF/APT 元数据和 SHA-256 `repo_complete` 标记，不再注入伪造 ModuleMD。
- `module_hotfixes` 改为逐仓库显式选择，并仅为需要替换系统模块流的 EL 仓库启用，避免无差别绕过 DNF 模块过滤。
- `cache.yml` 在 `dist/<version>/pigsty-<version>.tgz` 已预先生成时，会把该源码包一并放入离线仓库；它不会隐式打包当前工作树，也不会联网下载源码。
- RPM Exporter 包名统一由下划线改为连字符，例如 `node_exporter` → `node-exporter`；旧名称通过无版本 `Provides/Obsoletes` 过渡。
- Infra 本地重打包统一使用 `PGSTY` vendor、SPDX 许可证表达式、`1PGSTY` release、`/etc/default/<service>` 环境文件、`/usr/lib/systemd/system` 厂商单元与 `/usr/share/doc/<package>` 法律文件。
- 简单二进制包改用带 SHA-256 的上游归档可重复构建；厂商原生 RPM/DEB 则保持字节与原始元数据不变。Silo、Grafana、Code、Code Server 与 Vector 等直供制品均加入固定 URL/校验和。
- 中国区域源路由系统性刷新：操作系统、Docker、Grafana、Percona、MongoDB APT 与 uv/PyPI 优先腾讯云，EL/Docker 保留华为云与阿里云回退，MySQL/Kubernetes 使用中科大，ClickHouse 使用华为云。

### Infra 软件包更新表

下表将本周期的 Infra 批次合并为每个软件包一行，只保留 v4.4.0 旧值、v4.5.0 最终值和必要备注；中间版本不重复展开。表中的“已构建/已核验”只描述打包记录，最终可安装版本仍以发布时的仓库索引和签名元数据为准。

| 软件包 | 旧版本 | 新版本 | 备注 |
|:---|:---|:---|:---|
| `agentsview` | `0.37.5` | `0.40.1` |  |
| `claude` | `2.1.206` | `2.1.227` |  |
| `cloudflared` | `2026.7.1` | `2026.7.3` |  |
| `code` | `1.128.0` | `1.133.0` |  |
| `code-server` | `4.127.0` | `4.132.0` |  |
| `codex` | `0.144.1` | `0.147.0` |  |
| `crush` | `0.84.0` | `0.88.1` | 改用含许可证的官方 tarball 合规重打包 |
| `dblab` | `0.43.0` | `0.47.4` |  |
| `duckdb` | `1.5.4` | `1.5.5` |  |
| `etcd` | `3.6.13` | `3.7.1` |  |
| `ferretdb` | `2.7.0` | `2.7.0` | 构建链曾改名为 ferretdb2，最终恢复 ferretdb |
| `grafana` | `13.1.0` | `13.1.3` | 包含安全修复 |
| `grafana-infinity-ds` | `3.8.0` | `3.11.3` |  |
| `grafana-victorialogs-ds` | `0.29.0` | `0.31.0` |  |
| `headscale` | `0.29.2` | `0.29.3` |  |
| `jmx-exporter` | `-` | `1.6.0` | 新增 noarch 软件包 |
| `juicefs` | `1.4.0` | `1.4.1` |  |
| `k3s` | `-` | `1.36.3` | 上游 v1.36.3+k3s1 |
| `k3s-images` | `-` | `1.36.3` | 与 k3s 精确匹配的双架构离线镜像 |
| `logcli` | `3.6.7` | `3.7.6` | Loki 组件同步升级 |
| `loki` | `3.6.7` | `3.7.6` | Loki 组件同步升级 |
| `loki-canary` | `-` | `3.7.6` | 新增 Loki 配套组件 |
| `mcli` | `20260417000000` | `20260806000000.0.0` |  |
| `mcp-toolbox` | `1.6.0` | `1.8.0` | 原 genai-toolbox 包名与配方统一为 mcp-toolbox |
| `minio` | `20260618000000` | `20260804000000` | 仅保留仓库软件包，不再是 v4.5 MINIO 模块后端 |
| `mongodb-exporter` | `0.51.0` | `0.52.0` |  |
| `mtail` | `3.0.8` | `3.4.7` |  |
| `node-exporter` | `1.11.1` | `1.12.1` | RPM 包名由 node_exporter 改为 node-exporter |
| `nodejs` | `24.18.0` | `24.19.0` | Node.js 24 LTS 安全更新 |
| `npgsqlrest` | `3.20.0` | `3.21.0` |  |
| `opencode` | `1.17.18` | `1.18.16` |  |
| `pev2` | `1.22.0` | `1.23.0` |  |
| `pg-exporter` | `1.3.0` | `1.4.1` | 升级 1.4 系列，与新版采集配置同步 |
| `pg-hardstorage` | `1.0.8` | `1.2.1` |  |
| `pg-timetable` | `6.3.0` | `7.0.0` | 主版本升级 |
| `pgbackrest-exporter` | `0.23.0` | `0.24.0` |  |
| `pgschema` | `1.12.0` | `1.12.2` |  |
| `pgstream` | `1.1.1` | `1.3.1` |  |
| `PGSTY package release` | `混合` | `1PGSTY` | 自建 RPM/DEB release 后缀统一 |
| `pig` | `1.5.1` | `1.8.0` | 扩展目录刷新 |
| `postgrest` | `14.14` | `16.1` | 主版本升级；最低支持 PostgreSQL 14 |
| `prometheus` | `3.13.1` | `3.13.2` | 安全与稳定性修复 |
| `promscale` | `0.17.0` | `0.17.0` | 上游归档，保留最终版本 |
| `promtail` | `3.6.7` | `3.6.7` | 冻结在 3.6.7；Loki 3.7 不再发布新版 Promtail |
| `rainfrog` | `0.3.19` | `0.4.3` |  |
| `rclone` | `1.74.4` | `1.75.0` |  |
| `redis-exporter` | `1.86.0` | `1.89.0` | RPM 包名由 redis_exporter 改为 redis-exporter |
| `rustfs` | `1.0.0-b8` | `1.0.0-rc.1` | 预发布包保留在仓库，但不是 v4.5 MINIO 模块后端 |
| `sabiql` | `1.14.0` | `1.15.1` |  |
| `sealos` | `5.1.1` | `5.0.1` | 锁定最后一个 Apache-2.0 稳定版 |
| `seaweedfs` | `4.39` | `4.41` |  |
| `silo` | `minio 20260804000000` | `20260806000000.0.0` | 正式取代 MinIO 服务端，成为 v4.5 唯一对象存储后端 |
| `sow` | `0.2.0` | `0.3.0` | REPO/CACHE 核心依赖 |
| `stalwart` | `0.16.12` | `0.16.17` |  |
| `timescaledb-tools` | `0.19.0-1` | `0.19.0-2` | 包含 timescaledb-parallel-copy 0.13.0 |
| `uv` | `0.11.28` | `0.12.3` |  |
| `v2ray` | `5.51.2` | `5.52.0` |  |
| `vector` | `0.56.0` | `0.57.0` |  |
| `victoria-logs` | `1.51.0` | `1.52.0` |  |
| `victoria-metrics` | `1.147.0` | `1.149.0` |  |
| `victoria-metrics-cluster` | `1.147.0` | `1.149.0` |  |
| `victoria-traces` | `0.9.4` | `0.10.0` |  |
| `vip-manager` | `4.2.0` | `5.0.0` | 主版本升级；安装后默认禁用，配置不向后兼容 |
| `vlagent` | `1.51.0` | `1.52.0` |  |
| `vlogscli` | `1.51.0` | `1.52.0` |  |
| `vmutils` | `1.147.0` | `1.149.0` |  |
| `xray` | `26.3.27` | `26.3.27` | 26.7.28 候选更新撤回，稳定版保持 26.3.27 |

## 平台、模板与发布工程

- 推荐平台基线更新到 Rocky Linux 9.8/10.2、Debian 12.15/13.6、Ubuntu 22.04.5/24.04.4/26.04.0；Terraform 云镜像与 Vagrant box 固定版本同步刷新。
- Vagrant 根盘改为可配置的 `root_disk`：默认 64 GiB，`all`、`rpm`、`deb`、`oss`、`pro` 构建矩阵使用 128 GiB；原有 `disk` 仍表示额外 `/data` 盘，默认 128 GiB。vagrant 用户登录 Shell 统一为 Bash。
- 新增八节点 `ha/octo` 仿真环境；`ha/trio` 改为三节点 Silo + VIP/HAProxy，`demo/minio` 显式选择 Silo 并裁剪本地仓库包组。
- `safe` 与 `demo` 模板改用有效的扩展别名；tuned profile 路径按操作系统适配，集群规模比较继续兼容 Ansible 2.19 之前的类型行为，并清理不再使用的内部标志与 MINIO/INFRA 变量。
- Docker 基础镜像更新到 Debian 13.6 并标记 v4.5.0；镜像发布工作流改为手动触发并从标签构建。
- `docker/Makefile` 的数据目录固定为仓库内 `./data`；`make purge` 不再接受外部 `DATA` 覆盖，也没有倒计时。
- GitHub Actions 批量升级 checkout、CodeQL、Docker build/login 与 Cosign；发布、引导、安装、校验和构建模板同步收紧参数与文件处理。
- 发布归档从 `conf/meta.yml` 生成顶层 `pigsty.yml`，纳入 Kafka/MySQL 剧本并移除旧 Mongo 剧本；签名工作流只为 `pigsty-<tag>.tgz` 源码包生成 Cosign 签名，不签署多 GB 离线包。
- README、SECURITY、CONTRIBUTING、AGENTS 与 NOTICE 同步到 v4.5、575 扩展、Silo、Redis/Valkey 和 Mongo 模式，并更新 2026 版权与商标说明。

## 兼容性变化与升级说明

从 v4.4 升级前，请特别检查以下变化：

1. **FERRET 拆分**：移除旧 `ferretdb` systemd 服务，使用 Mongo 配置模式部署 DocumentDB 数据层，再用 `docker.yml` / `app.yml` 部署 FerretDB 协议层；旧 `mongo.yml`、`mongo_*` 参数和专用面板不再提供。
2. **Silo 取代 MinIO 服务端**：`minio_type` 只接受 `silo`。协议与磁盘格式兼容不等于迁移已经验收；切换既有对象存储前必须验证备份、原地兼容性、回滚和真实读写。
3. **`ha/trio` 对象存储拓扑变化**：新模板是三节点单盘 Silo。既有单节点池不能通过简单增加两名成员原地扩容，应新建集群并迁移对象。
4. **HAProxy 单元变化**：Pigsty 不再渲染 `/etc/default/haproxy`，但单元会可选读取它；只使用 `EXTRAOPTS`，并保留 `-S /run/haproxy-master.sock`，不要加入 `-f`。
5. **显式集群身份**：自定义清单必须为目标主机定义 `pg_cluster`、`redis_cluster`、`minio_cluster`、`kafka_cluster` 或 `mysql_cluster`；仅依赖固定组名的旧清单需要补齐。
6. **PGSQL 完整剧本仅用于初始化**：不要在已初始化节点上完整重跑 `pgsql.yml`。日常维护使用精确标签；需要完整重建时，先按正式流程验证备份并移除目标成员。
7. **Valkey 为显式选择**：只有设置 `redis_type: valkey` 才会安装 Valkey；模块参数、配置路径和监控接口仍沿用 Redis 命名。
8. **SOW 成为核心依赖**：REPO/CACHE 需要 SOW 0.3.0。旧离线包或旧本地仓库如果没有 `sow`，应先从 Pigsty Infra 仓库补齐。
9. **Exporter RPM 政名**：外部自动化与私有仓库应从 `node_exporter`、`redis_exporter` 等旧名迁移到 `node-exporter`、`redis-exporter`。
10. **默认扩展组收紧许可证**：依赖 `emailaddr`、`explain_ui`、`oidc_validator`、`pg_summarize`、`smlar` 的环境需改为显式安装，并自行确认许可证与再分发边界。
11. **Docker 清理语义变化**：`make purge` 会直接删除仓库内 `./data`；执行前确认没有需要保留的容器数据。
12. **Vagrant 磁盘语义变化**：`root_disk` 控制系统盘，`disk` 控制额外 `/data` 盘；分布式 Silo 依赖后者是真实独立挂载。

## 获取 v4.5.0

在受支持的全新 Linux 节点上安装：

```bash
curl -fsSL https://repo.pigsty.io/get | bash -s v4.5.0
cd ~/pigsty
./bootstrap
./configure
./install.yml
```

生产升级不是简单覆盖安装。请先阅读本页兼容性变化，核对目标集群、备份、清单身份与实际运行状态，再以明确的 `-l` 范围执行检查模式或维护操作。
