Marketplace db-handler

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

install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/aayushbaniya2006/db-handler" ~/.claude/skills/aiskillstore-marketplace-db-handler && rm -rf "$T"
manifest: skills/aayushbaniya2006/db-handler/SKILL.md
source content

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.