Rechercher

PythonReactSEOPDF
GitHub Skill

db-handler

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

aiskillstore☆ 124 Étoiles du dépôt6 Forks du dépôt

Installation

Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.

Voir la source ↗Guides

Instructions

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.
    • Mandatory: Use Zod schema for any JSONB columns.
  3. Relations: Define relations and Foreign Keys.
  4. Verification: Ask the user: "Is this structure correct? Are there any missing relations?"
  5. Migration:
    • DO NOT generate migration files (e.g., drizzle-kit generate).
    • 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.

Exemples

Consultez les exemples du dépôt source.

Voir la source ↗

Historique source

Date d’indexation
2026-01-20
Mise à jour de l’index
2026-01-28
Branch
main

Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!