Agent Skills
返回列表
💻

用 pgrx 构建 PostgreSQL Rust 扩展

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/build-test-and-package-postgresql-extensions-in-rust-with-pgrx。

技能介绍

要解决的问题

在 Rust 中开发 PostgreSQL 原生扩展时,开发者常面临一套琐碎且易出错的工程环节:工具链初始化容易卡在目录残留、系统依赖缺失导致构建失败、不同 PostgreSQL 版本下打包结果不一致,以及交互式测试需要手动拼接命令与环境变量。这些工作占用大量时间,却并未直接贡献扩展逻辑本身,也容易因环境差异产生难以复现的问题。

技能如何工作

该技能围绕 pgrx 的扩展生命周期,将本地构建、测试运行与跨版本打包封装为清晰步骤。核心能力包括:

  • 环境检查:在执行关键命令前提示缺失的系统依赖,避免因 pkg-config、icu4c 等未安装而失败;
  • 命令编排:封装 cargo pgrx init 的初始化流程,自动处理目录残留问题,必要时重新运行初始化;
  • 交互式测试:通过 cargo pgrx run 在 psql 或 pgcli 中直接打开扩展,无需手动拼接启动参数;
  • 版本打包:生成与目标 PostgreSQL 版本对齐的扩展包,减少因版本差异导致的兼容性排查。

关键步骤依次为:准备 Rust 工具链与 PostgreSQL 开发依赖,初始化 pgrx 环境,运行交互式测试验证逻辑,最后生成可分发的扩展包。

适用边界与注意点

  • 该技能聚焦本地开发与测试,不替代生产环境的部署与运维流程;
  • 不提供跨平台开箱即用的配置,macOS 环境需额外更新 Xcode 与命令行工具,或完成系统升级;
  • 上游项目未定义 MSRV,可能需要较新的 Rust 稳定版,建议通过 rustup 获取;
  • 安装阶段如遇目录残留问题,需重新运行初始化命令,技能会在流程中提示该操作。

使用场景

  • 当 Rust 写的 PostgreSQL 扩展需要在本地跑起来,并在 psql 里交互验证 SQL 与函数行为时
  • 当团队要为不同 PostgreSQL 版本生成扩展包,排查编译、依赖或初始化失败时
  • 当你准备在 macOS 上用 pgrx 开发扩展,需要检查 Xcode、命令行工具和系统依赖是否满足时
  • 当 cargo pgrx init 遇到旧目录残留或初始化失败,需要按流程重新初始化并继续构建时

适合人员

  • 负责用 Rust 编写 PostgreSQL 扩展的后端工程师,需要完成本地构建、测试与打包
  • 维护多个 PostgreSQL 版本扩展包的技术负责人,关注兼容性与可复现构建
  • 在 macOS 上初始化 pgrx 环境的开发者,需要排查 Xcode 和命令行工具配置
  • 为自动化扩展开发流程配置 Agent 技能的工程师,需要明确技能边界和触发场景