db-handler
Manage database schemas, Drizzle ORM, migrations, and data modeling. Use when creating tables, modifying columns, or planning database changes.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
Database Handler
Instructions
1. Creating a New Table
-
Draft: Create the
pgTabledefinition insrc/db/schema/{domain}.ts. -
Columns: Add ID (UUID), timestamps, and data columns.
- Mandatory: Use Zod schema for any JSONB columns.
-
Relations: Define
relationsand Foreign Keys. - Verification: Ask the user: "Is this structure correct? Are there any missing relations?"
-
Migration:
-
DO NOT generate migration files (e.g.,
drizzle-kit generate). -
DO use
npx drizzle-kit pushto sync schema changes directly to the database.
-
DO NOT generate migration files (e.g.,
2. Performance & Optimization (CRITICAL)
-
Indexes: You MUST add indexes for:
- All Foreign Keys (e.g.,
userId,planId). - Columns frequently used in
WHEREclauses (e.g.,status,email). - Columns used for sorting (e.g.,
createdAt).
- All Foreign Keys (e.g.,
-
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)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!