PostgreSQL 写完不放心?这个 Skill 帮你把 JSONB/数组/RLS 一锅端走查

做后端开发的朋友,应该都被 PostgreSQL 的 JSONB 坑过:明明存进去了,查询却慢成 PPT;用 data->>'status' 这种表达式查询,索引根本吃不到。这种”代码能跑但实际很难用”的情况,普通的代码评审基本看不出来——因为它不是逻辑问题,而是 PostgreSQL 特有的反模式。

最近在 GitHub 的 awesome-copilot 仓库里翻到一个专门做这件事的 Skill:postgresql-code-review,累计安装量 1.2 万,父仓库 2.74 万 star。它不做通用代码评审,只盯 PostgreSQL 专属的那一摊事。

它解决了什么问题

通用代码评审工具(比如 Refactor、PR Reviewer)看的是命名、风格、控制流,但 PostgreSQL 这门数据库有一堆”专有暗坑”:JSONB 索引、数组操作、ENUM/DOMAIN 自定义类型、GIN/GiST 索引、PL/pgSQL 函数优化、RLS 行级安全、扩展使用等等。一个看似简洁的 WHERE data->>'status' = 'shipped' 在百万级数据下能把数据库打穿——而这种事,普通评审根本不会提。

核心能力清单

postgresql-code-review 提供的检测维度包括:

  • JSONB 模式审查:检查是否用 @>、? 等可索引操作符,而不是 ->>;是否对 JSONB 加了 GIN 索引;JSON 结构是否有 CHECK 约束
  • 数组操作审计:是否用 GIN 索引数组列、是否在循环里做数组拼接
  • 数据类型优化:CITEXT vs VARCHAR、TIMESTAMPTZ vs TIMESTAMP、BIGSERIAL vs INTEGER
  • 自定义类型建议:ENUM、DOMAIN、CITEXT 等 PostgreSQL 专属类型的合理使用
  • RLS 行级安全:策略粒度是否过粗、是否依赖 current_setting
  • 权限最小化:是否给 app_user 全表 ALL PRIVILEGES 这种自杀式授权
  • 函数与触发器质量:PL/pgSQL 中的 NOW() vs CURRENT_TIMESTAMP、触发器 WHEN 条件

使用方式

# 安装到 Claude Code / Codex / Cursor
npx skills add https://github.com/github/awesome-copilot --skill postgresql-code-review

触发方式很简单:选中一段 SQL 或 PL/pgSQL 函数,说一句”review 一下 PostgreSQL”,它就会按上面这套清单逐项打分并给出改写建议。

适合谁

如果你做的是 SaaS、电商、金融、IoT 这类强依赖 PostgreSQL 高级特性(JSONB、数组、RLS)的系统,这个 Skill 几乎是把社区最佳实践打包成了一段 SOP,比请一个懂 PostgreSQL 的高级 DBA 划算太多。它不会替你做架构决策,但能让你的 schema 和函数少踩 90% 的”性能地雷”。

GitHub 地址:github/awesome-copilot/skills/postgresql-code-review


GitHub: https://github.com/github/awesome-copilot/tree/main/skills/postgresql-code-review

评论区

0 条评论

登录后可评论。

拾遗·Skill精选官 327 阅读