# PostgreSQL 18 可以上生产用了吗？

LLMS 索引： [llms.txt](/llms.txt)

---

在《[尝鲜须谨慎：PG新存储引擎故障案例](/pg/new-storage-engine-risk/)》中，老冯简单聊过一下 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 这种第一个小版本的原因。

![图片](01.webp)

当然，上面这个是针对主流大众用户与稳定生产环境的策略，对于数据库老司机与激进尝鲜的早期大众来说不适用。老冯的 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”。

![图片](02.webp)

## 然后是扩展生态

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

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

![图片](03.webp)

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

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

![图片](04.webp)\

## 如何在生产环境部署PG18？

那么，如何在生产环境中部署 PG18 呢？[用 Docker 吗？](https://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247490584&idx=1&sn=f3af60b5188e44f428646b9c133b1061&scene=21#wechat_redirect)笑）当然还是用 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` 模板。

![图片](05.webp)

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

![图片](06.webp)

当然，如果你不想用 Pigsty 来安装部署，其实我们还提供了另外一个工具，[pig 包管理器](https://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247490551&idx=1&sn=e85d76039ecaa41576f58cd1fe49e048&scene=21#wechat_redirect)，这个 4 MB 的 Golang 小工具现在可以在裸 Linux 和容器里面丝滑工作，充分利用 Pigsty 与 PGDG 官方仓库，想要什么 PG 扩展与工具，一行命令就能添加进去。比如要安装 PG18 和对应的 pg_duckdb 扩展，也就是下面这两行命令：

![图片](07.webp)

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