PostgreSQL 全球开发组于 9 月 24 日发布了 PostgreSQL 19 Beta 4。这个 beta 撤回了多项原计划纳入 19 的功能。
被撤回的功能包括 SQL/PGQ(属性图查询)、数据校验和的在线启用与禁用、FOR PORTION OF 子句的时态(temporal)更新与删除,以及 ALTER TABLE ... MERGE/SPLIT PARTITIONS。pg_get_role_ddl() 等 3 个 DDL 输出函数也被移除。
开发组给出的理由是 PostgreSQL 首先必须可靠,同时也力求可预测的发布日程。被移除的功能可能在经过更多审查后进入之后的大版本。
从早期版本迁移到 Beta 4,需要使用与大版本之间升级相同的方式,例如 pg_upgrade 或 pg_dump/pg_restore。
根据升级文档,小版本从不改变内部存储格式,只需替换可执行文件。大版本可能改变存储格式,因此要通过转储与恢复、pg_upgrade 或逻辑复制来迁移数据。
文档说明,把新服务器安装在不同目录和端口上并与旧服务器并行运行,停机时间最短,并给出以下迁移命令示例。
pg_dumpall -p 5432 | psql -d postgres -p 5433文档指出,新大版本通常会带来用户可见的不兼容变化。因此它建议阅读发行说明的 Migration 部分,并把管理功能、SQL、库 API、系统目录和服务器 C API 的变化列为测试类别。
注意事项:仍是发布前的 beta
公告称下一个计划发布的是 10 月初的候选版本,并且根据测试和评估,GA 也可能在 10 月发布。这并非确定的发布日期。
公告表示在 beta 期间,数据库行为、功能细节和 API 仍可能有小的变化。不在此次撤回清单中的功能也尚未最终确定。
19 的文档在发布前也可能变化。本文并不包含实际迁移数据库或扩展的结果。
排除已撤回功能的迁移测试计划
如果看到早期 beta 后已开始使用被撤回的语法,第一步是先标记这些部分。
接着用有代表性的数据演练所选的迁移方式,并确认扩展和管理工具能在新版本上运行。保留一条不依赖新功能也能工作的路径,即使功能组合变化,也能单独判断迁移本身。
在 PostgreSQL 19 Beta 4 中,撤回清单与大版本升级流程是两条不同维度的变化。