Skill · em Construir backend e dados
supabase-postgres-best-practices
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files,…
Procedência
- Origem: supabase/agent-skills
- Caminho:
skills/supabase-postgres-best-practices - Versão fixada:
551274ed2fe97c8fea1325f7ceb05803a542f8df - Licença: MIT
- Espelhado em 25/09/2026
- 415,8 mil instalações no skills.sh (lido em 25/09/2026)
Antes de instalar
36 arquivos · 60,6 KB · só texto, nenhum script
Instalar na sua CLI
O comando baixa a versão fixada (commit 551274e) direto da origem, para a pasta que a CLI lê. Precisa de curl (macOS e Linux); no Windows não há comando, porque o Rook Labs é para macOS.
Claude Code
Neste projeto: instala em .claude/skills/supabase-postgres-best-practices/.
d=".claude/skills/supabase-postgres-best-practices" u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \ -o "$d/references/_contributing.md" "$u/references/_contributing.md" \ -o "$d/references/_sections.md" "$u/references/_sections.md" \ -o "$d/references/_template.md" "$u/references/_template.md" \ -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \ -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \ -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \ -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \ -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \ -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \ -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \ -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \ -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \ -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \ -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \ -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \ -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \ -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \ -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \ -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \ -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \ -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \ -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \ -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \ -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \ -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \ -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \ -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \ -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \ -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \ -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \ -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \ -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \ -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \ -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"
Global: instala em ~/.claude/skills/supabase-postgres-best-practices/.
d="$HOME/.claude/skills/supabase-postgres-best-practices" u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \ -o "$d/references/_contributing.md" "$u/references/_contributing.md" \ -o "$d/references/_sections.md" "$u/references/_sections.md" \ -o "$d/references/_template.md" "$u/references/_template.md" \ -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \ -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \ -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \ -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \ -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \ -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \ -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \ -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \ -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \ -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \ -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \ -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \ -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \ -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \ -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \ -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \ -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \ -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \ -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \ -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \ -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \ -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \ -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \ -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \ -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \ -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \ -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \ -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \ -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \ -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \ -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"
Codex
Neste projeto: instala em .agents/skills/supabase-postgres-best-practices/.
d=".agents/skills/supabase-postgres-best-practices" u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \ -o "$d/references/_contributing.md" "$u/references/_contributing.md" \ -o "$d/references/_sections.md" "$u/references/_sections.md" \ -o "$d/references/_template.md" "$u/references/_template.md" \ -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \ -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \ -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \ -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \ -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \ -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \ -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \ -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \ -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \ -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \ -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \ -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \ -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \ -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \ -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \ -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \ -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \ -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \ -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \ -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \ -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \ -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \ -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \ -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \ -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \ -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \ -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \ -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \ -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \ -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \ -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"
Global: instala em ~/.agents/skills/supabase-postgres-best-practices/.
d="$HOME/.agents/skills/supabase-postgres-best-practices" u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \ -o "$d/references/_contributing.md" "$u/references/_contributing.md" \ -o "$d/references/_sections.md" "$u/references/_sections.md" \ -o "$d/references/_template.md" "$u/references/_template.md" \ -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \ -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \ -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \ -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \ -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \ -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \ -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \ -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \ -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \ -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \ -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \ -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \ -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \ -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \ -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \ -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \ -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \ -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \ -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \ -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \ -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \ -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \ -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \ -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \ -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \ -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \ -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \ -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \ -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \ -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \ -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"
Antigravity
Neste projeto: instala em .agents/skills/supabase-postgres-best-practices/.
d=".agents/skills/supabase-postgres-best-practices" u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \ -o "$d/references/_contributing.md" "$u/references/_contributing.md" \ -o "$d/references/_sections.md" "$u/references/_sections.md" \ -o "$d/references/_template.md" "$u/references/_template.md" \ -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \ -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \ -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \ -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \ -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \ -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \ -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \ -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \ -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \ -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \ -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \ -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \ -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \ -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \ -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \ -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \ -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \ -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \ -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \ -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \ -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \ -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \ -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \ -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \ -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \ -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \ -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \ -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \ -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \ -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \ -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"
Global: instala em ~/.gemini/antigravity-cli/skills/supabase-postgres-best-practices/.
d="$HOME/.gemini/antigravity-cli/skills/supabase-postgres-best-practices" u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \ -o "$d/references/_contributing.md" "$u/references/_contributing.md" \ -o "$d/references/_sections.md" "$u/references/_sections.md" \ -o "$d/references/_template.md" "$u/references/_template.md" \ -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \ -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \ -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \ -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \ -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \ -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \ -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \ -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \ -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \ -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \ -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \ -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \ -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \ -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \ -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \ -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \ -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \ -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \ -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \ -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \ -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \ -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \ -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \ -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \ -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \ -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \ -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \ -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \ -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \ -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \ -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"
Peça ao Rook
Já usa o Rook Labs? Cole no chat do Rook: instale a skill https://rooklabs.sh/marketplace/supabase.agent-skills.supabase-postgres-best-practices
Prévia do SKILL.md
---
name: supabase-postgres-best-practices
description: "Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS polic…
license: MIT
metadata:
author: supabase
version: "1.1.1"
organization: Supabase
date: January 2026
abstract: Comprehensive Postgres performance optimization guide for developers using Supabase and Postgres. Contains performance rules across 8 categories, prioritized by impact from critical (query performance, connection management) to incremental (advanced features). Each rule includes detailed explanations, incor…
---
# Supabase Postgres Best Practices
Comprehensive performance optimization guide for Postgres, maintained by Supabase. Contains rules across 8 categories, prioritized by impact to guide automated query optimization and schema design.
## When to Apply
Reference these guidelines when:
- Writing SQL queries or designing schemas
- Implementing indexes or query optimization
- Reviewing database performance issues
- Configuring connection pooling or scaling
- Optimizing for Postgres-specific features
- Working with Row-Level Security (RLS)
## Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Query Performance | CRITICAL | `query-` |
| 2 | Connection Management | CRITICAL | `conn-` |
| 3 | Security & RLS | CRITICAL | `security-` |
| 4 | Schema Design | HIGH | `schema-` |
| 5 | Concurrency & Locking | MEDIUM-HIGH | `lock-` |
| 6 | Data Access Patterns | MEDIUM | `data-` |
| 7 | Monitoring & Diagnostics | LOW-MEDIUM | `monitor-` |
| 8 | Advanced Features | LOW | `advanced-` |
## How to Use
…