Token导航 LogoToken导航TokenDH.com
研究检索external-servicegithub未标认证来源可访问许可证需确认审计异常

postgresqlPostgreSQL 数据库

Agent Skill

用于辅助数据库表结构、查询语句、迁移脚本和数据维护任务。它适合让 Agent 分析 schema、编写 SQL、排查查询问题、整理索引或生成迁移建议。使用时需要明确数据库类型、连接环境和目标表,区分只读分析与写入变更;涉及删除、更新、迁移和批量导入时,应优先 dry-run、备份或事务保护,避免误操作。

总安装

855

周安装

36

GitHub Stars

12

下载量

350
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:postgresql(PostgreSQL 数据库)
来源仓库:https://github.com/claude-dev-suite/claude-dev-suite
仓库路径:skills/postgresql
安装命令:
npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill postgresql
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill postgresql

简介

用于辅助 PostgreSQL 数据库的表结构分析与 SQL 编写。

  • 支持 schema 查询、索引优化、迁移脚本生成和查询问题诊断。
  • 需明确连接环境与目标表,区分只读与分析性变更操作。
  • 涉及删除或批量更新时应优先 dry-run 或事务保护。
  • postgresql 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

PostgreSQL Core Knowledge

Deep Knowledge: Use mcp__documentation__fetch_docs with technology: postgresql for comprehensive documentation.

Table Definition

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN DEFAULT TRUE
);

CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_created ON users(created_at DESC);

Common Queries

-- Select with pagination
SELECT * FROM users
WHERE is_active = TRUE
ORDER BY created_at DESC
LIMIT 20 OFFSET 0;

-- Join
SELECT u.*, p.title
FROM users u
LEFT JOIN posts p ON p.user_id = u.id
WHERE u.id = $1;

-- Aggregate
SELECT
    DATE_TRUNC('day', created_at) as day,
    COUNT(*) as count
FROM users
GROUP BY DATE_TRUNC('day', created_at)
ORDER BY day DESC;

-- Upsert
INSERT INTO users (email, name)
VALUES ($1, $2)
ON CONFLICT (email)
DO UPDATE SET name = EXCLUDED.name;

Data Types

TypeUse For
SERIALAuto-increment IDs
UUIDUnique identifiers
VARCHAR(n)Variable strings
TEXTLong text
JSONBJSON data (indexed)
TIMESTAMPDate and time
BOOLEANTrue/false

Performance

  • Use EXPLAIN ANALYZE to check queries
  • Add indexes for WHERE/JOIN columns
  • Use JSONB over JSON for queries
  • Partial indexes for filtered queries

When NOT to Use This Skill

  • MySQL-specific syntax - Use mysql skill for MySQL databases (AUTO_INCREMENT, GROUP_CONCAT)
  • NoSQL operations - Use mongodb or redis skills for document/key-value stores
  • Oracle PL/SQL - Use plsql skill for Oracle-specific procedural code
  • SQL Server T-SQL - Use tsql skill for SQL Server-specific features
  • ORM abstractions - Use framework-specific skills (Prisma, TypeORM, Spring Data JPA)

Anti-Patterns

Anti-PatternIssueSolution
SELECT * in productionTransfers unnecessary data, breaks when schema changesSpecify needed columns explicitly
Missing WHERE on UPDATE/DELETEModifies all rows unintentionallyAlways include WHERE clause, use transactions
Missing indexes on JOIN/WHERE columnsFull table scans, slow queriesAdd indexes on frequently queried columns
Using functions on indexed columnsPrevents index usage: WHERE UPPER(email) = 'X'Use functional indexes or change query
LIKE '%pattern'Cannot use index, full scanUse LIKE 'pattern%' or full-text search
Missing LIMIT on large tablesCan crash application, memory issuesAlways paginate results
Storing comma-separated valuesCannot query efficiently, violates normalizationUse array type or junction table
Missing foreign keysData integrity issues, orphaned recordsDefine proper FK constraints
N+1 query problemOne query per row in loopUse JOINs or batch queries
Long-running transactionsLocks resources, blocks other queriesKeep transactions short, use appropriate isolation

Quick Troubleshooting

ProblemDiagnosticFix
Slow queriesEXPLAIN ANALYZE queryAdd indexes, rewrite query, update statistics
High CPU usagepg_stat_statements to find slow queriesOptimize top queries, add connection pooling
Connection limit reachedSELECT count(*) FROM pg_stat_activityIncrease max_connections, use PgBouncer
Lock contentionSELECT * FROM pg_locks WHERE NOT grantedReduce transaction time, use lower isolation
Disk space fullSELECT pg_size_pretty(pg_database_size('mydb'))VACUUM, archive old data, increase storage
Replication lagCheck pg_stat_replicationIncrease resources, tune checkpoint settings
Cache hit ratio < 95%SELECT sum(blks_hit)/sum(blks_hit+blks_read) FROM pg_stat_databaseIncrease shared_buffers
Dead tuples accumulatingSELECT n_dead_tup FROM pg_stat_user_tablesRun VACUUM, tune autovacuum

Production Readiness

Security Configuration

-- Create application user with limited privileges
CREATE USER app_user WITH PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE mydb TO app_user;
GRANT USAGE ON SCHEMA public TO app_user;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO app_user;

-- Row Level Security (RLS)
ALTER TABLE users ENABLE ROW LEVEL SECURITY;
CREATE POLICY users_tenant_isolation ON users
    USING (tenant_id = current_setting('app.tenant_id')::uuid);

-- Force SSL connections
-- In postgresql.conf:
-- ssl = on
-- ssl_cert_file = '/path/to/server.crt'
-- ssl_key_file = '/path/to/server.key'
-- Connection with SSL
psql "postgresql://user:pass@host:5432/db?sslmode=require"

Connection Pooling (PgBouncer)

# pgbouncer.ini
[databases]
mydb = host=127.0.0.1 port=5432 dbname=mydb

[pgbouncer]
listen_addr = 0.0.0.0
listen_port = 6432
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
pool_mode = transaction
max_client_conn = 1000
default_pool_size = 20
min_pool_size = 5
reserve_pool_size = 5

Backup & Recovery

# Continuous archiving (WAL)
# postgresql.conf:
archive_mode = on
archive_command = 'cp %p /backup/wal/%f'
wal_level = replica

# Full backup with pg_basebackup
pg_basebackup -D /backup/base -Ft -Xs -P -U replication

# Point-in-time recovery (recovery.signal)
restore_command = 'cp /backup/wal/%f %p'
recovery_target_time = '2024-01-15 10:00:00'

Performance Tuning

-- postgresql.conf recommendations (for 16GB RAM server)
shared_buffers = 4GB                # 25% of RAM
effective_cache_size = 12GB         # 75% of RAM
maintenance_work_mem = 1GB
work_mem = 64MB
wal_buffers = 64MB
max_connections = 200
checkpoint_completion_target = 0.9
random_page_cost = 1.1              # SSD

-- Query optimization
SET log_min_duration_statement = 1000;  -- Log queries > 1s
ANALYZE;  -- Update statistics

Monitoring Metrics

MetricAlert Threshold
Connection count> 80% max_connections
Cache hit ratio< 95%
Replication lag> 1MB or > 10s
Dead tuples ratio> 10%
Long-running transactions> 5 minutes
Lock wait events> 10/min

Monitoring Queries

-- Active connections
SELECT count(*) FROM pg_stat_activity WHERE state = 'active';

-- Cache hit ratio
SELECT
    round(100 * sum(blks_hit) / nullif(sum(blks_hit) + sum(blks_read), 0), 2) as cache_hit_ratio
FROM pg_stat_database;

-- Table bloat (dead tuples)
SELECT schemaname, relname, n_dead_tup, n_live_tup,
       round(100.0 * n_dead_tup / nullif(n_live_tup + n_dead_tup, 0), 2) as dead_ratio
FROM pg_stat_user_tables
WHERE n_dead_tup > 1000
ORDER BY n_dead_tup DESC;

-- Long-running queries
SELECT pid, now() - pg_stat_activity.query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active' AND now() - pg_stat_activity.query_start > interval '5 minutes';

-- Replication lag
SELECT client_addr, state,
       pg_wal_lsn_diff(pg_current_wal_lsn(), sent_lsn) AS send_lag,
       pg_wal_lsn_diff(sent_lsn, replay_lsn) AS replay_lag
FROM pg_stat_replication;

High Availability

# Patroni configuration for HA
scope: postgres-cluster
name: node1

restapi:
  listen: 0.0.0.0:8008

etcd:
  hosts: etcd1:2379,etcd2:2379,etcd3:2379

postgresql:
  listen: 0.0.0.0:5432
  data_dir: /data/postgres
  parameters:
    max_connections: 200
    shared_buffers: 4GB

Checklist

  • SSL/TLS encryption enabled
  • Least-privilege user accounts
  • Connection pooling (PgBouncer)
  • WAL archiving configured
  • Regular pg_dump backups
  • Point-in-time recovery tested
  • Monitoring queries in place
  • Slow query logging enabled
  • VACUUM/ANALYZE scheduled
  • Replication configured (if HA)
  • Connection limits set
  • Row Level Security (if multi-tenant)

Reference Documentation

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.27%
按下载量换算130

Claude

30.94%
按下载量换算108

Cursor

17.58%
按下载量换算62

Gemini CLI

9.95%
按下载量换算35

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

未通过

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills