Drizzle ORM typesafe schema design, relational queries, prepared statements, migrations, and transactions. Use when working with Drizzle ORM, writing database queries, managing migrations, or optimizing query performance with prepared statements.
Lightweight, headless TypeScript ORM with zero dependencies. Drizzle excels at:
.with() without manual joinsCore patterns: one table per file, relational API for nested queries, prepared statements for hot paths, transactions for consistency.
When working with Drizzle ORM:
defineRelations() for one-to-many, many-to-many; enables nested queriesdb.transaction()drizzle-kit migrate:dev before push; review generated SQLInferSelectModel for runtime types from schemaPatterns are organized by concern:
with() for nested data, partial columns, filteringSee rules/ for implementation patterns and examples.
User: "Define a Drizzle schema for orders with relations to users and products."
Expected behavior: Use tech-drizzle guidance, apply schema design with relational queries and type inference.
User: "Write a raw SQL migration for adding a column to the users table."
Expected behavior: Do not prioritize tech-drizzle; choose a more relevant skill or proceed without it.
Error: Running unprepared queries in tight loops
Cause: Query compiled every execution; no reuse of parsed SQL
Solution: Use .prepare() with placeholders; execute multiple times with different params
Error: Manual joins in code; fetching parent then children separately
Cause: Not using relational API; writing complex join logic
Solution: Define relations, use .with() to fetch nested data in single query
Error: Column not included in result when selecting from relation
Cause: Selecting from nested relation without explicitly including columns
Solution: Use columns: { id: true, name: true } to specify nested relation columns
Error: Transaction rolls back unexpectedly; no clear error
Cause: Unhandled promise rejection inside db.transaction()
Solution: Wrap transaction operations in try/catch; all errors must be caught
Error: Schema types not updating after migration
Cause: drizzle-kit didn't regenerate types; cache stale
Solution: Run drizzle-kit generate after migration changes
ravnhq/ai-toolkit
e6237ae
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.