在《》中,老馮簡單聊過一下 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 愉快與順利。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.