| name | pitfalls-drizzle-orm |
| description | Drizzle ORM patterns and migration safety rules. Use when defining schemas, running migrations, or debugging database issues. Triggers on: Drizzle, schema, migration, db:push, $inferSelect, array column. |
Drizzle ORM Pitfalls
Common pitfalls and correct patterns for Drizzle ORM.
When to Use
- Defining database schemas
- Running migrations (db:push)
- Creating insert/select types
- Working with array columns
- Reviewing Drizzle ORM code
Workflow
Step 1: Verify Schema Types
Check that types are exported correctly.
Step 2: Check Array Syntax
Verify array columns use correct syntax.
Step 3: Test Migrations Safely
Never change primary key types in production.
Critical Rules
allowedTokens: text('allowed_tokens').array()
export type Strategy = typeof strategies.$inferSelect;
export type NewStrategy = typeof strategies.$inferInsert;
import { createInsertSchema } from 'drizzle-zod';
export const insertStrategySchema = createInsertSchema(strategies);
Migration Safety
npm run db:push
npm run db:push --force
Type Inference Pattern
import { strategies } from './schema';
type Strategy = typeof strategies.$inferSelect;
type NewStrategy = typeof strategies.$inferInsert;
import { createInsertSchema, createSelectSchema } from 'drizzle-zod';
import { z } from 'zod';
const insertSchema = createInsertSchema(strategies);
type StrategyInput = z.infer<typeof insertSchema>;
Quick Checklist