Postgres 社区非常重视并鼓励开发者对 Beta 版本提供测试反馈。而借助于 Docker,我们可以极其轻松地启动并运行这些预发布版本。
随着最近 PostgreSQL 19 Beta 1 的发布,让我们把它运行起来,并测试一些新功能吧。
使用 Docker 获取 Postgres 预发布版本
首先,你需要为你的操作系统安装好 Docker!请根据你的操作系统和处理器架构(例如 ARM 或 AMD/Intel/x86)下载对应的版本。
在 macOS 上,你可以运行以下命令来查看你的硬件架构细节:
uname -m
# 或者
sw_vers
对于 Windows 用户,请参考官方的《在 Windows 上安装 Docker Desktop》指南。
构建与运行
用于 Docker 的官方 Postgres 镜像仓库通常仅限于正式发布的稳定版本(GA)。
幸运的是,社区核心贡献者 @yosifkit 创建了一个 Pull Request,为官方仓库添加了 19 Beta 1 的支持(并由 @tianon 合并),同时提供了如何使用 docker buildx 来手动构建预发布版本的说明。
运行以下命令,即可直接下载并从源码构建出 postgres:19beta1-trixie 镜像:
docker buildx build -t postgres:19beta1-trixie \
'https://github.com/infosiftr/postgres.git#19-rc:19/trixie'
构建完成后,我们就可以使用 postgres:19beta1-trixie 来调用 docker run 了。在下面的命令中,我将这个容器命名为 pg19。
此外,我根据平时运行其他 Docker Postgres 容器的习惯,传递了以下环境变量(这些参数可以根据你的实际需求进行调整)。
最终的启动命令如下:
docker run \ --name pg19 \ --env POSTGRES_USER=postgres \ --env POSTGRES_PASSWORD=postgres \ --detach postgres:19beta1-trixie
想要检查容器是否成功运行,可以执行以下命令:
docker ps -a
如果需要查看容器的实时运行日志,可以运行:
docker logs -f pg19
通过 psql 连接容器
当容器成功启动,且日志中输出了我们最想看到的那行标志性提示——“database system is ready to accept connections”(数据库系统已准备好接受连接)时,就可以通过交互式终端连接进去了。
让我们使用容器内自带的 psql 客户端连接到 Postgres:
docker exec -it pg19 psql -U postgres
进入 psql 命令行后,我们可以运行以下 SQL 语句来验证当前的数据库主版本号:
SELECT version();
此时,你应该能看到类似于 PostgreSQL 19beta1 ... 的输出结果。至此,你已经成功搭建好了一个隔离的 PostgreSQL 19 测试环境,可以开始畅快地测试 SQL/PGQ(属性图查询)或 GROUP BY ALL 等全新特性了!
原文地址:https://andyatkinson.com/postgresql-beta-testing-docker
原文作者:Andy Atkinson




