在《》中,老冯简单聊过一下 PostgreSQL 上新的节奏 —— 应该用什么 PostgreSQL 大版本。老冯的策略是:当每个 PostgreSQL 大版本的第二个小版本出来的时候,差不多就能上生产了。最近 PostgreSQL 18.1 也就是第二个小版本已经放出了,加上扩展生态也基本上普遍跟进完成,老冯认为 PG 18 已经可以用于生产环境了。

先把BUG修一修

PostgreSQL 的版本发布策略非常规律:每年一个大版本,基本上大版本都会在九月下旬发布。然后每季度一个小版本:通常是 2月/5月/8月/11月。如果出现了比较重要紧急的问题,会有临时加塞的非常规小版本。最近的 18.1 / 17.7 / 16.11 /15.15 / 14.20 / 13.23 就是 2025-11 月的例行小版本发布。修了两个 CVE,50 多个 Bug —— 所以这就是为啥不要赶趟 18.0 这种第一个小版本的原因。

打开网易新闻 查看精彩图片

当然,上面这个是针对主流大众用户与稳定生产环境的策略,对于数据库老司机与激进尝鲜的早期大众来说不适用。老冯的 Pigsty 早在 18beta1 刚发布的时候就提供了在 Pigsty 中部署与使用的支持,不过直到最近几天,我才将 默认 的 PostgreSQL 大版本从 17 提升到 18 。

实际上,AWS RDS PostgreSQL 也差不多是这个策略,当 Beta 版本推出的时候,可以在 “数据库预览环境” 中使用。然后当第二个小版本发布的时候(也就是 17.1 和 18.1),才会正式上 RDS 的生产 —— 你通常会在 11 月中旬看到:“Amazon RDS for PostgreSQL now supports major version xx”。

打开网易新闻 查看精彩图片

然后是扩展生态

PostgreSQL 成功的秘诀在于它有着一个独一无二的扩展生态,而这些 PG 扩展插件支持 PG 18 也是需要适配时间的。通常有一半以上的扩展可以在没有什么变化的情况下直接支持新的 PG 大版本,当然这样说的意思就是另外一半扩展还是要干点活儿的。这三个月里,基本上 PG 扩展生态升级改造。

老冯可以骄傲的说一句自己还是做了不少贡献的,给几十个扩展提了修复补丁,然后还有 265 个扩展是由老冯编译,打包维护的。除了支持 PG 18 之外,还支持了最近新发布的 Debian 13 和 EL10 系统。总的来说目前的状态是,在 437 个扩展里面,PG 18 差不多只有 20 个掉队的扩展,主要扩展里面目前也就是 citus 还没有适配完。

打开网易新闻 查看精彩图片

老冯有一个新的网站,https://pgext.cloud[1] ,专门收录整理了 PG 生态里面的扩展,包括现在的状态,在 14 个 Linux 发行版上的可用性,安装使用的方法等等。如果你想要用到 PG 扩展,这是一个很好的参考资料。

例子,Debian 13,aarch64 架构下目前的扩展支持状态:

打开网易新闻 查看精彩图片

如何在生产环境部署PG18?

那么,如何在生产环境中部署 PG18 呢?笑)当然还是用 Pigsty 啦。一次性把 PG 生产最佳实践,437 扩展,监控,高可用,备份恢复,以 IaC 的方式在主流 Linux 上直接一键交付安装并配置好,还开源免费。

老实说,老冯不推荐一般用户直接手搓 PG ,因为这里有许多 Tricky 的工程细节,比如最近 PGDG Yum 仓库就把默认的 clang / llvm 编译器版本给从 19 升级到 20,然后在 EL9 / EL10 上就和系统版本冲突了,有时候想完整安装 PG18 ,还得先卸掉几个系统小工具(bpftool / python3-perf),然后补几个包才行。

然后像 EL 10 上的 Ansible 还不完整,老冯自己把几个 ansible 包给补上了,要是自己直接从上游手搓,大概就翻车了 —— 所以我也能理解一些用户喜欢用 Docker 的心情 —— 如果你想要生产级的质量,又不想操心这些专业细节,最好还是用成熟封装好的工具与方案。

老冯准备在最近初正式发布一个 Pigsty v3.7 版本,目前刚刚发布的 v3.7.0-beta1 已经提供了默认的 PG 18支持。而且可以在最新的 EL10 / Debian 13 上丝滑运行。包括 Supabase 自建模板这些也都更新到了最新版本与 PG 18。使用的方式和之前没有什么区别,找一台新的 Linux 机器,执行以下命令就好了。

curl https://repo.pigsty.cc/beta | bash
cd pigsty; ./configure; ./install.yml

和以前的区别是,现在 configure 的时候,不需要用 -v 18 指定 PG 18 大版本 ,因为现在默认就是 PG 18 了。另外,如果你想要一次性下载安装所有的扩展,可以使用 configure -c rich 模板。

打开网易新闻 查看精彩图片

目前 3.7 beta1 主体已经完工了,主要是文档编写与冒烟测试,如果你对生产环境运行 PG18 感兴趣,现在已经可以开始耍起来了。更多细节,老冯会在 Pigsty v3.7 正式发布的时候介绍。

打开网易新闻 查看精彩图片

当然,如果你不想用 Pigsty 来安装部署,其实我们还提供了另外一个工具,,这个 4 MB 的 Golang 小工具现在可以在裸 Linux 和容器里面丝滑工作,充分利用 Pigsty 与 PGDG 官方仓库,想要什么 PG 扩展与工具,一行命令就能添加进去。比如要安装 PG18 和对应的 pg_duckdb 扩展,也就是下面这两行命令:

打开网易新闻 查看精彩图片

总之,欢迎各位朋友用起来,如果遇到各种问题,欢迎在 GitHub 和群组里面反馈。也祝大家使用最新的 PostgreSQL 18 愉快与顺利。