postgres-query
37
总安装量
13
周安装量
#10140
全站排名
安装命令
npx skills add https://github.com/civitai/civitai --skill postgres-query
Agent 安装分布
claude-code
10
opencode
8
gemini-cli
8
antigravity
7
windsurf
7
github-copilot
6
Skill 文档
PostgreSQL Query Testing
Use this skill to run ad-hoc PostgreSQL queries for testing, debugging, and performance analysis.
Running Queries
Use the included query script:
node .claude/skills/postgres-query/query.mjs "SELECT * FROM \"User\" LIMIT 5"
Options
| Flag | Description |
|---|---|
--explain |
Run EXPLAIN ANALYZE on the query |
--writable |
Use primary database instead of read replica (requires user permission) |
--timeout <s>, -t |
Query timeout in seconds (default: 30) |
--file, -f |
Read query from a file |
--json |
Output results as JSON |
--quiet, -q |
Minimal output, only results |
Examples
# Simple query
node .claude/skills/postgres-query/query.mjs "SELECT id, username FROM \"User\" LIMIT 5"
# Check query performance
node .claude/skills/postgres-query/query.mjs --explain "SELECT * FROM \"Model\" WHERE id = 1"
# Override default 30s timeout for longer queries
node .claude/skills/postgres-query/query.mjs --timeout 60 "SELECT ... (complex query)"
# Query from file
node .claude/skills/postgres-query/query.mjs -f my-query.sql
# JSON output for processing
node .claude/skills/postgres-query/query.mjs --json "SELECT id, username FROM \"User\" LIMIT 3"
Safety Features
- Read-only by default: Uses
DATABASE_REPLICA_URLto prevent accidental writes - Write protection: Blocks INSERT/UPDATE/DELETE/DROP unless
--writableflag is used - Explicit permission required: Before using
--writable, you MUST ask the user for permission
When to Use –writable
Only use the --writable flag when:
- The user explicitly requests write access
- You need to test write operations
- You’re verifying transaction behavior
IMPORTANT: Always ask the user for permission before running with --writable.
Comparing Query Performance
To compare two query approaches:
# Run first approach
node .claude/skills/postgres-query/query.mjs --explain "SELECT ... (approach 1)"
# Run second approach
node .claude/skills/postgres-query/query.mjs --explain "SELECT ... (approach 2)"
# Compare actual results
node .claude/skills/postgres-query/query.mjs --json "SELECT ... (approach 1)" > /tmp/q1.json
node .claude/skills/postgres-query/query.mjs --json "SELECT ... (approach 2)" > /tmp/q2.json
Verifying Index Usage
Run with --explain and look for:
- Good: “Index Scan”, “Bitmap Index Scan”, “Index Only Scan”
- Bad: “Seq Scan” on large tables (indicates missing or unused index)
node .claude/skills/postgres-query/query.mjs --explain "SELECT * FROM \"Account\" WHERE provider = 'discord'"