Communitygithub.com

modèles-postgres

Modèles de base de données PostgreSQL pour l'optimisation des requêtes, la conception de schémas, l'indexation et la sécurité. Basé sur les meilleures pratiques Supabase. À utiliser lors de la conception de schémas PostgreSQL, d'index ou de politiques RLS, ou lorsqu'une requête est trop lente.

Qu'est-ce que modèles-postgres ?

Ce skill fournit un guide de référence rapide pour les meilleures pratiques PostgreSQL, couvrant l'optimisation des index, la conception de schémas et la sécurité. Il s'appuie sur les pratiques recommandées par Supabase et est destiné aux développeurs manipulant des bases de données PostgreSQL. Il inclut une aide-mémoire sur les types d'index (B-tree, GIN, BRIN, composites) adaptés à différents motifs de requêtes, ainsi que des recommandations sur les types de données (bigint pour les ID, text pour les chaînes, timestamptz pour les horodatages). Le skill propose des motifs courants comme l'ordre des index composites (colonnes d'égalité puis de plage), les index couvrants, les index partiels, les politiques RLS optimisées, les requêtes UPSERT, la pagination par curseur et le traitement de files d'attente. Il inclut également des requêtes de détection d'anti-patrons (clés étrangères non indexées, requêtes lentes, bloat de tables) et un modèle de configuration des limites de connexion et des timeouts. Ce skill est conçu pour être utilisé avec des agents comme Claude Code, Cursor ou Codex, et est particulièrement utile lors de l'écriture de requêtes SQL, de migrations, de conception de schémas, de débogage de requêtes lentes, ou de mise en place de Row Level Security et de connection pooling.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/postgres-patterns

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Modèles PostgreSQL

Référence rapide pour les bonnes pratiques PostgreSQL. Pour des conseils détaillés, utilisez l'agent database-reviewer.

Quand activer

  • Écrire des requêtes SQL ou des migrations
  • Concevoir des schémas de base de données
  • Résoudre les requêtes lentes
  • Implémenter la sécurité au niveau des lignes (Row Level Security)
  • Configurer le pooling de connexions

Référence rapide

Aide-mémoire des index

Motif de requêteType d'indexExemple
WHERE col = valeurB-tree (par défaut)CREATE INDEX idx ON t (col)
WHERE col > valeurB-treeCREATE INDEX idx ON t (col)
WHERE a = x AND b > yCompositeCREATE INDEX idx ON t (a, b)
WHERE jsonb @> '{}'GINCREATE INDEX idx ON t USING gin (col)
WHERE tsv @@ requêteGINCREATE INDEX idx ON t USING gin (col)
Plages temporellesBRINCREATE INDEX idx ON t USING brin (col)

Aide-mémoire des types de données

Cas d'usageType correctÀ éviter
IDsbigintint, UUID aléatoire
Chaînestextvarchar(255)
Horodatagestimestamptztimestamp
Monnaienumeric(10,2)float
Drapeauxbooleanvarchar, int

Motifs courants

Ordre des index composites :

-- Colonnes d'égalité d'abord, puis colonnes de plage
CREATE INDEX idx ON commandes (statut, cree_le);
-- Fonctionne pour : WHERE statut = 'en_attente' AND cree_le > '2024-01-01'

Index couvrant :

CREATE INDEX idx ON utilisateurs (email) INCLUDE (nom, cree_le);
-- Évite un accès à la table pour SELECT email, nom, cree_le

Index partiel :

CREATE INDEX idx ON utilisateurs (email) WHERE supprime_le IS NULL;
-- Index plus petit, inclut uniquement les utilisateurs actifs

Politique RLS (optimisée) :

CREATE POLICY politique ON commandes
  USING ((SELECT auth.uid()) = utilisateur_id);  -- Encapsuler dans SELECT !

UPSERT :

INSERT INTO parametres (utilisateur_id, cle, valeur)
VALUES (123, 'theme', 'sombre')
ON CONFLICT (utilisateur_id, cle)
DO UPDATE SET valeur = EXCLUDED.valeur;

Pagination par curseur :

SELECT * FROM produits WHERE id > $dernier_id ORDER BY id LIMIT 20;
-- O(1) contre OFFSET qui est O(n)

Traitement de file d'attente :

UPDATE travaux SET statut = 'traitement'
WHERE id = (
  SELECT id FROM travaux WHERE statut = 'en_attente'
  ORDER BY cree_le LIMIT 1
  FOR UPDATE SKIP LOCKED
) RETURNING *;

Détection d'anti-patrons

-- Trouver les clés étrangères non indexées
SELECT conrelid::regclass, a.attname
FROM pg_constraint c
JOIN pg_attribute a ON a.attrelid = c.conrelid AND a.attnum = ANY(c.conkey)
WHERE c.contype = 'f'
  AND NOT EXISTS (
    SELECT 1 FROM pg_index i
    WHERE i.indrelid = c.conrelid AND a.attnum = ANY(i.indkey)
  );

-- Trouver les requêtes lentes
SELECT query, mean_exec_time, appels
FROM pg_stat_statements
WHERE mean_exec_time > 100
ORDER BY mean_exec_time DESC;

-- Vérifier le gonflement (bloat) des tables
SELECT relname, n_dead_tup, dernier_vide
FROM pg_stat_user_tables
WHERE n_dead_tup > 1000
ORDER BY n_dead_tup DESC;

Modèle de configuration

-- Limites de connexion (ajuster selon la RAM)
ALTER SYSTEM SET max_connections = 100;
ALTER SYSTEM SET work_mem = '8MB';

-- Temps d'attente
ALTER SYSTEM SET idle_in_transaction_session_timeout = '30s';
ALTER SYSTEM SET statement_timeout = '30s';

-- Surveillance
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;

-- Sécurité par défaut
REVOKE ALL ON SCHEMA public FROM public;

SELECT pg_reload_conf();

Rubriques connexes

  • Agent : database-reviewer – Processus complet de révision de base de données
  • Skill : clickhouse-io – Modèles d'analyse ClickHouse
  • Skill : backend-patterns – Modèles API et backend

Basé sur Supabase Agent Skills (crédit : équipe Supabase) (Licence MIT)

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Skills associés