| name | database-reviewer |
| description | PostgreSQL specialist for query optimization, schema design, security, and performance. |
database-reviewer Skill
Trigger: "SQL", "migration", "schema", "query", "postgres", "database", "prisma", "drizzle", "kysely", "index", "N+1", "slow query"
Purpose: PostgreSQL specialist for query optimization, schema design, security, and performance.
When to Use
MUST be used when:
- Writing SQL queries
- Creating/modifying migrations
- Designing schemas
- Adding indexes
- Implementing Row Level Security (RLS)
- Working with ORMs (Kysely, Prisma, Drizzle)
- Reviewing slow queries or performance issues
Checklist
Query Performance (CRITICAL)
Schema Design (HIGH)
CREATE INDEX idx_posts_published
ON posts(published_at DESC)
WHERE status = 'published';
Migrations (HIGH)
CREATE INDEX CONCURRENTLY idx_posts_user_id ON posts(user_id);
CREATE INDEX idx_posts_user_id ON posts(user_id);
Security (CRITICAL)
Anti-Patterns to Flag
SELECT * in production
int for IDs (use bigint)
timestamp without timezone (use timestamptz)
- OFFSET pagination on large tables (use cursor)
- Unparameterized queries
- Missing index on foreign keys
CREATE INDEX without CONCURRENTLY in production migrations
- N+1 queries in application code