Receber por email
← Voltar para o catálogo

db-handler

Manage database schemas, Drizzle ORM, migrations, and data modeling. Use when creating tables, modifying columns, or planning database changes.

367estrelas
Atualizado há 4 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add aiskillstore/marketplace

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/db-handler/svg)](https://www.skillteca.com.br/skills/db-handler)

Skills relacionadas

Ver todas de Segurança →

Alerta por categoria

Receba novas skills de Segurança toda segunda

1 email curto, só com as skills novas de Segurança. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Database Handler

Instructions

1. Creating a New Table

  1. Draft: Create the pgTable definition in src/db/schema/{domain}.ts.
  2. Columns: Add ID (UUID), timestamps, and data columns.
  3. Mandatory: Use Zod schema for any JSONB columns.
  4. Relations: Define relations and Foreign Keys.
  5. Verification: Ask the user: "Is this structure correct? Are there any missing relations?"
  6. Migration:
  7. DO NOT generate migration files (e.g., drizzle-kit generate).
  8. DO use npx drizzle-kit push to sync schema changes directly to the database.

2. Performance & Optimization (CRITICAL)

  • Indexes: You MUST add indexes for:
  • All Foreign Keys (e.g., userId, planId).
  • Columns frequently used in WHERE clauses (e.g., status, email).
  • Columns used for sorting (e.g., createdAt).
  • N+1 Prevention:
  • NEVER allow fetching data inside a loop.
  • Use Drizzle's Relational Query API (with: { ... }) or explicit .leftJoin() to fetch related data in a single query.

3. Modifying Columns

  • Prefer adding nullable columns or columns with default values.
  • Avoid breaking changes without explicit confirmation.

4. Types & Enums

  • Enums: Export as constants (export const roleEnum = ...).
  • Types: Do NOT export inferred types. Let consumers infer them.

Reference

For detailed patterns, imports, and best practices, see [reference.md](reference.md).

Compartilhar X LinkedIn