经过两个月的精心打磨,Pigsty v3.3 正式发布!作为一款开源的“开箱即用” PostgreSQL 发行版,Pigsty 旨在凝聚 PG 生态的合理,并为本地自建提供与云上 RDS 媲美的免运维便捷体验。
过去一年,Pigsty 在 PostgreSQL 生态中不断突破,新发布的 v3.3 版本聚焦三个关键领域:扩展插件、建站体验和应用模板,大大增强了其在开发、运维、部署等多方面的能力与体验。
可用扩展突破400+,打造最强PG生态
PostgreSQL 一直以其丰富的扩展机制著称,孕育了庞大的数据库生态。 Pigsty 顺应这一趋势,将 PostgreSQL 的插件扩展能力发挥到极致。
在一年前,我写了一篇《PostgreSQL正在吞噬数据库世界》,描述了PG通过扩展通吃数据库市场的趋势与愿景。 在那时 Pigsty 的可用扩展数量也就只有 150[1] 个,基本都是 PG自带(70)和 PGDG 官方仓库提供的扩展。

而如今 Pigsty v3.3 将可用扩展数量已经达到了惊人的 404 个!这意味着 Pigsty 用户几乎可以即插即用任何你能想到的 PostgreSQL 插件,为数据库赋予更多强大功能。而且更重要的是,像搭积木一样组合这些扩展的能力!
在最新增加的扩展中,还有一些值得关注的“新秀”插件: 比如微软开源出品的 PGDocumentDB 扩展赋予 PostgreSQL 文档数据库的能力,可以更方便地存储和查询 JSON 文档; 由 AWS 最新出品的 PGCollection 扩展为 PG 添加了一种内存优化的高性能集合数据类型; 由 DataDog 开源的pg_tracing 插件为 PostgreSQL 提供了分布式调用链追踪功能,有助于数据库性能分析和调试; 而 pg_curl 则让数据库能够用几十种网络协议发起请求,调用外部接口,而不仅仅局限于 HTTP; pgpdf 让用户可以直接读取存储 PDF 格式文件,用 SQL 直接全文检索 PDF 文档内容;
此外,由 Omnigres 开发的三十多个 Omni 系列扩展,更是为在 PG 中进行 Web 应用开发打开了一扇全新的大门。 Pigsty 与 Omnigres 达成了深度合作伙伴关系,我们整合分发 Omnigres 的扩展,而他们作为我们的下游供应商,将 Pigsty 扩展仓库中的扩展交付给他们的用户,实现互惠共赢。
我们还与 FerretDB 团队合作,交付基于 PostgreSQL 的 MongoDB 方案。是的,你可以轻松利用刚发布的 FerretDB 2.0。 将 PG 变为一个核心功能完备的 MongoDB 5.0 用,使用 MongoDB 客户端与线缆协议访问 PostgreSQL 中的数据。 FerretDB 2.0 使用了微软开源的 DocumentDB 作为后端的实现,提供了更好的性能与更完善的功能实现。

与此同时,DuckDB 缝合大赛 依然在如火如荼的进行中,Pigsty v3.3 第一时间跟进了 pg_duckdb 0.3.1 与 pg_mooncake 0.1.2 以及 pg_analytics 0.5.4 的最新版本。 他们分别从几种不同的维度为 PostgreSQL 添加了比肩 ClickHouse 的分析能力
在 ClickHouse 的自家榜单 ClickBench 上,PG 扩展 mooncake 已经成功挤进了 Top 10 ,T1 梯队。 我相信在这种激烈的竞争角逐下,PostgreSQL 生态很快会出现一个比肩向量数据库生态中 pgvector
的 OLAP 玩家,将 OLAP 与大数据市场搅的天翻地覆。
当然,这么多扩展插件,如何安装管理成为了一个难题,而我们提出的解决方案 pig
,以及 Pigsty 扩展仓库,能够让用户不再操心各种扩展的细节与怪癖。 只要一行命令,就能在你的 PostgreSQL 上拥有 400 个扩展合体的超能力 —— 即使你不用 Pigsty,也没有问题。
虽然,拥有独一无二的扩展库可以成为 Pigsty 的一个核心竞争优势,但我们更希望能够为 PostgreSQL 生态做出更多的贡献,让更多的用户能够享受到 PostgreSQL 的强大功能。因此 pig 包管理器,与这个 PostgreSQL 扩展仓库是基于 Apache 2.0 宽松协议开源并对公众与同行开放的。
我和一些 PG 社区的开发者组建了一个 NextGen Package Manager Postgres Extension 兴趣小组,邀请对 PG 扩展生态感兴趣的参与者加入。也有许多 PG 扩展作者联系了我,希望帮助他们进行分发。而且,已经有两家 PostgreSQL 厂商成基于 Pigsty 扩展仓库安装扩展,成为 Pigsty 的下游了。所以,除了开源情怀之外,这也确实是一种扎实的参与全球软件供应链的好办法。
建站体验,Nginx IaC与免费HTTPS证书
Pigsty 是一个 PostgreSQL 发行版,但又不仅仅是一个 PostgreSQL 发行版,它还是一套完整的监控基础设施,Etcd,MinIO,Redis,Docker 部署管理方案,甚至是还可以作为一套 Web 建站工具。
为什么呢,因为 Pigsty 提供了全功能的 Nginx 配置方案,和证书申请 SOP。实际上,Pigsty 的网站和软件仓库就是使用 Pigsty 本身搭建的。做这个需求纯粹是为了满足我自己的需求 —— 如何在几分钟内快速搭建一套正规的网站?

例如,Pigsty 的中英文网站和备用仓库就是在一台服务器上,通过以下配置定义的。我只要一件安装 Pigsty,然后在配置文件中加入这几行,那么 Nginx 就会自动创建我需要的配置,并创建 HTTPS 证书。 然后,我只要把网站内容和软件仓库的东西 rsync/scp 过去,建站就完成了!就是这么简单!
Pigsty v3.2 就已经将 certbot 整合并默认安装在基础设施节点上了,所以你可以轻松的用一行命令完成 HTTPS 证书的申请与续签而无需操心细节,不用在去当冤大头买证书或者鼠标点点点去折腾了。
你可以用 Pigsty 中的 Nginx 代理各种服务,并使用不同的域名区分,并统一收口到 80/443 端口对外服务 —— 这让做好防火墙管理安全最佳实践很简单,你只要打开入站 80/443 TCP端口就够了(最多在加个 22/SSH)。
当然,具体的细节和 SOP 都已经更新到文档中了,依葫芦画瓢,快速搭建一套安全,可靠,高性能的网站,其实非常简单!
应用模板,部署更加简单
有许多“软件”都会用到 PostgreSQL,而 Pigsty 也在过去提供了不少这类软件的 Docker Compose 模板。但模板归模板,以前用户还是要自己拷贝应用目录,修改 .env
配置参数,然后手工用 docker compose
拉起来。
因此,Pigsty v3.3 提供了一个全新的剧本 app.yml
,可以帮助用户自动化解决上面的问题,把基于 PostgreSQL 的 Docker 软件交付的最后一公里,压缩为临门一脚的一行命令。
让我们来看几个例子,想要搭建一套全功能的 Odoo ERP 系统,只需要下面几行命令就可以了!

想要搭建一套复杂的 AI 工作流编排软件 Dify,使用外面 Pigsty 管理的高可用,高性能,自带PITR与IAC的 PostgreSQL集群,也只需要这几行命令。

包括之前比较火爆的 Supabase 自建方案,也改造成统一的 App 方式,提供傻瓜式的交付体验:

从裸机到一套完整的可以上线生产应用服务,不过是几条命令的复杂度,几分钟的等待时间。 我们会在后面将更多的 Docker 软件 App 化,提供这种傻瓜式的模板与交付能力。
pig命令行,能力不断加强
Pigsty 提供的命令行工具 pig
也得到了显著的加强。 pig v0.3 提供了一个新的子命令 pig build
,允许你快速在服务器上搭建好构建 PG 扩展所需的完整环境。
Pigsty 有 400 多个扩展插件,其中我维护了其中 200+,是 PGDG 仓库的一倍还多。在之前构建扩展都是用手写的脚本进行基础的自动化,但是随着扩展数量的增加,这种方式已经不再适用了。 所以我花了两天的时间,将扩展构建的工具全部集成到了这个 pig build
命令中。比如,现在我想要在某个操作系统发行版上构建 PG 扩展,流程是这样的:
curl https://repo.pigsty.cc/pig | bash # 安装 pig
pig build repo # 添加上游仓库
pig build tool # 安装构建工具
pig build rust # 配置rust/pgrx工具链(可选)
pig build spec # 下载构建规范
pig build proxy # 配置代理
pig build get citus # 下载某个扩展的源码包,比如 citus
pig build ext citus # 构建某个扩展的源码包,比如 citus复制
没想到吧,200 多个扩展都是这么构建出来的!是不是很简单? 有了这个工具,即使你的操作系统不在 Pigsty 扩展仓库支持的十大操作系统中,也可以轻松 DIY 扩展 RPM/DEB 包了。
这里还有个隐藏功能,自动下载配置代理,方便下载 GitHub 上的各种依赖,当然这种功能我是不可能写到文档里的哈哈。
全新的网站,Next.js初体验
另一个 Pigsty v3.3 的改进是网站基础设施建设。从 Pigsty v3.3 开始,Pigsty 国际站 (pigsty.io) 与 Pigsty 中文站 (pigsty.cc) 正式分离。使用独立的域名,文档,Demo,仓库。

我找了个 Next.js 的模板,花了两天时间做了个新的 Pigsty 首页,还真别说,挺像那么回事。 上次我折腾前端的东西还是 JQuery 一把梭的时代,不过出乎意料的是 React Next.js 这摊东西看上去其实也不复杂。特别是有了 GPT o1-pro 和 cursor 的帮助,让我这个“新人”也能快速手搓个 Landing Page出来。

在网站托管方式上,我尝试了原生的 Vercel,静态导出到 Cloudflare Pages,新加坡/香港的阿里云青春版 ClawCloud,以及国内的阿里云羊毛机,腾讯云 EdgeOne 和普通云服务器。 确实没少折腾,反正多亏了上面 Pigsty 的建站优化改进,让我折腾起来方便了很多。最后,综合体验与性价比最好的选择还是:1. 海外全放 Cloudflare,2. 国内就用北京按需云服务器,后面可以专门写一篇聊聊这个。
在这个过程中,我将建站流程高度自动化。现在我只要乐意,十分钟就能在任意一个区域拉起 Pigsty 文档+仓库基础设施站点。而这些能力也沉淀到了 Pigsty 中。
当然,除了漂亮主页,更重要的还是文档的内容。在 Pigsty v3.3 中,我将原本 ext.pigsty.io PG 扩展目录整合到了文档站 pigsty.cc/ext 中,并且提供了中文版本,方便用户查阅。 更主要的是,我还写了个小工具,可以自动扫描 Pigsty 与 PGDG 仓库的扩展软件包版本并自动生成数据库记录,信息页,这样哪个扩展缺了,版本不一致都一目了然,用户也可以直接从网页上浏览并下载扩展 RPM/DEB 包了。
其他的改进
Pigsty 已经在 3.0 的时候支持使用多种不同的 PG 分叉内核了,比如 “Oracle兼容” 的 IvorySQL 和 PolarDB O,SQL Server 兼容的 Babelfish,以及阿里云的 PolarDB for PostgreSQL。
在 3.3 版本中,我们跟进了 IvorySQL 4.2 也就是 PG 17 兼容的版本,解决了 pgbackrest 备份没法用于 IvroySQL 的问题。现在 IvorySQL 运行也跟标准 PG 内核一样完整且丝滑了。

同时,我还推了 PolarDB 团队一把,让他们提供了 Debian 以及 ARM64 平台上的 DEB 包。是的,现在 PolarDB 已经可以在 Pigsty 支持的 10大操作系统发行版上丝滑运行了!
至于说,为什么我要用 PolarDB 内核不用 PostgreSQL —— 如果说,你的老板要给你一个 “国产化” 的坑爹要求,那么 PolarDB 也许是最简单直接,物美价廉的堵嘴立项方案!而 Pigsty 能把 PolarDB 内核 RPM/DEB 像 PG 一样封装成强大的 RDS 服务。
正好,明天 PolarDB 就在北京举办开发者大会,我也会作为媒体贵宾去观摩观摩。看看又整出了什么新花活来。
展望 Pigsty 3.4
在发布 3.3 版本成果的同时,我也在着手 3.4 版本的特性规划。
老实说,我觉得在 PostgreSQL 上,Pigsty 已经做到了足够好了,放眼望去,生态里能打的扩展插件基本上都被我整合完毕了。 要想继续摊大饼,可能就要折腾一些 Fork 了,比如 Neon,OrioleDB,PolarDB,为这些分支提供,比如说扩展支持。
但还有一个方向,我觉得很有意义,就是进一步发展 pig
这个命令行工具: 将更多的操作整合到这个精凑的 Go 命令行工具中,并最终实现一个完整的 PostgreSQL 管理工具链(最好能整个替代掉Ansible)。 我想当这个工具足够成熟的时候,大概就是 pigsty v4 大版本发布的时候了。
另外一个可以长期持续去做的方向,就是将更多 使用 PostgreSQL 的软件,改造成上面 Odoo,Dify,Supabase 这样的一键方案。 其实有不少中小企业是有这样的需求的,办公网或者一台云服务器,上面跑个 Gitlab(代码托管),Odoo(ERP),Dify(AI工作流编排),Supabase(后端一条龙),MatterMost(聊天IM),Discourse(论坛)等等,这些服务底下都是 PostgreSQL。
v3.3.0 发行注记
•总可用扩展插件数量提升至 404 个!•PostgreSQL 2 月小版本更新:17.4, 16.8, 15.12, 14.17, 13.20•新功能:app.yml
剧本可以自动安装应用,如 Odoo, Supabase,Dify。•新特性:支持 DocumentDB 与 FerretDB 2.0 以提供 MongoDB 兼容的PG。•新功能:允许在 infra_portal
中进一步定制 Nginx 配置文件。•新功能:添加了对 certbot 的支持,允许用户快速申请免费 HTTPS 证书•新特性:允许在 pg_default_extensions
中使用纯文本扩展列表。•新特性:默认可用仓库列表中添加了 mongo, redis, groonga, haproxy 等。•新参数:node_aliases
,允许为 Node 添加命令别名•修复:修复了 Bootstrap 剧本中 EPEL 国际仓库的默认地址•改进:为 Debian Security 仓库添加阿里云国内镜像•改进:针对 IvorySQL 内核提供 pgBackRest 备份支持•改进: 针对 PolarDB 提供 ARM64,Debian/Ubuntu 支持•pg_exporter 0.8.0,提供对 pgbouncer 1.24 新增指标的支持•新特性:为常见命令 git
, docker
, systemctl
添加自动补全支持 #506[2] #507[3] by @waitingsong[4]•改进:改进 pgbouncer
配置模板的 ignore_startup_parameters
参数,忽略若干超时参数设置 #488[5] by @waitingsong[6]•全新首页:现在 Pigsty 官网使用全新的网站设计。•扩展目录:现在 Pigsty 提供关于扩展 RPM/DEB 二进制包的详细信息与下载链接。•扩展构建:现在 pig 命令行可以自动设置 PostgreSQL 扩展构建环境。
新增扩展
新增 12 个 PostgreSQL 扩展,可用总数达到 404[7] 整。
•documentdb[8] 0.101-0•VectorChord-bm25[9] (vchord_bm25) 0.1.0•pg_tracing[10] 0.1.2•pg_curl[11] 2.4•pgxicor[12] 0.1.0•pgsparql[13] 1.0•pgjq[14] 0.1.0•hashtypes[15] 0.1.5•db_migrator[16] 1.0.0•pg_cooldown[17] 0.1•pgcollection[18] 0.9.1•pg_bzip[19] 1.0.0
更新扩展
•citus 13.0.0 -> 13.0.1•pg_duckdb 0.2.0 -> 0.3.1•pg_mooncake 0.1.0 -> 0.1.2•timescaledb 2.17.2 -> 2.18.2•supautils 2.5.0 -> 2.6.0•supabase_vault 0.3.1 (become C)•VectorChord 0.1.0 -> 0.2.1•pg_bulkload 3.1.22 (+pg17)•pg_store_plan 1.8 (+pg17)•pg_search 0.14 -> 0.15.2•pg_analytics 0.3.0 -> 0.3.4•pgroonga 3.2.5 -> 4.0.0•zhparser 2.2 -> 2.3•pg_vectorize 0.20.0 -> 0.21.1•pg_net 0.14.0•pg_curl 2.4.2•table_version 1.10.3 -> 1.11.0•pg_duration 1.0.2•pg_graphql 1.5.9 -> 1.5.11•vchord 0.1.1 -> 0.2.1 ((+13))•vchord_bm25 0.1.0 -> 0.1.1•pg_mooncake 0.1.1 -> 0.1.2•pgddl 0.29•pgsql_tweaks 0.11.0
基础设施软件包更新
•pig 0.1.3 -> 0.3.0•pushgateway 1.10.0 -> 1.11.0•alertmanager 0.27.0 -> 0.28.0•nginx_exporter 1.4.0 -> 1.4.1•pgbackrest_exporter 0.18.0 -> 0.19.0•redis_exporter 1.66.0 -> 1.67.0•mongodb_exporter 0.43.0 -> 0.43.1•VictoriaMetrics 1.107.0 -> 1.111.0•VictoriaLogs v1.3.2 -> 1.9.1•DuckDB 1.1.3 -> 1.2.0•Etcd 3.5.17 -> 3.5.18•pg_timetable 5.10.0 -> 5.11.0•FerretDB 1.24.0 -> 2.0.0-rc•tigerbeetle 0.16.13 -> 0.16.27•grafana 11.4.0 -> 11.5.2•vector 0.43.1 -> 0.44.0•minio 20241218131544 -> 20250218162555•mcli 20241121172154 -> 20250215103616•rclone 1.68.2 -> 1.69.0•vray 5.23 -> 5.28
References
[1]
150:https://github.com/Vonng/pigsty/blob/v2.6.0/docs/PGSQL-EXTENSION.md[2]
#506:https://github.com/Vonng/pigsty/pull/506[3]
#507:https://github.com/Vonng/pigsty/pull/507[4]
@waitingsong:https://github.com/waitingsong[5]
#488:https://github.com/Vonng/pigsty/pull/488[6]
@waitingsong:https://github.com/waitingsong[7]
404:https://pigsty.io/ext/list[8]
documentdb:https://github.com/microsoft/documentdb/[9]
VectorChord-bm25:https://github.com/tensorchord/VectorChord-bm25[10]
pg_tracing:https://github.com/DataDog/pg_tracing[11]
pg_curl:https://github.com/RekGRpth/pg_curl[12]
pgxicor:https://github.com/Florents-Tselai/pgxicor[13]
pgsparql:https://github.com/lacanoid/pgsparql[14]
pgjq:https://github.com/Florents-Tselai/pgJQ[15]
hashtypes:https://github.com/adjust/hashtypes/[16]
db_migrator:https://github.com/cybertec-postgresql/db_migrator[17]
pg_cooldown:https://github.com/rbergm/pg_cooldown[18]
pgcollection:https://github.com/aws/pgcollection[19]
pg_bzip: https://github.com/steve-chavez/pg_bzip
Pigsty v3.2:命令行工具 pig,完备ARM支持,Supabase & Grafana 加强
Pigsty v3.1:Supabase自建,PG17上位,MinIO改进,ARM/Ubuntu24支持
Pigsty v3:海量扩展,可替换内核,RDS服务,助力PostgreSQL进入全盛时代!
Pigsty v2.6:PostgreSQL 踢馆 OLAP
Pigsty v2.5 发布:Ubuntu/Debian支持与监控改版/新扩展
Pigsty v2.3.1:HNSW PGVECTOR来了!
Pigsty v2.1 发布:向量扩展 / PG12-16 支持