| name | drizzle |
| description | Drizzle ORM patterns, migrations, type-safe queries, and database schema design. |
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep |
| graph | {"domains":["domain:web-development"],"specializations":["specialization:web-development"],"skillAreas":["skill-area:object-relational-mapping","skill-area:backend-data-persistence"],"roles":["role:backend-engineer","role:fullstack-engineer"],"topics":["topic:active-record"]} |
Drizzle Skill
Expert assistance for database operations with Drizzle ORM.
Capabilities
- Define type-safe database schemas
- Write performant SQL queries
- Handle migrations
- Implement relations
- Configure multiple database dialects
Schema Definition
import { pgTable, text, timestamp, uuid, varchar } from 'drizzle-orm/pg-core';
import { relations } from 'drizzle-orm';
export const users = pgTable('users', {
id: uuid('id').primaryKey().defaultRandom(),
name: varchar('name', { length: 255 }).notNull(),
email: varchar('email', { length: 255 }).notNull().unique(),
createdAt: timestamp('created_at').defaultNow().notNull(),
});
export const posts = pgTable('posts', {
id: uuid('id').primaryKey().defaultRandom(),
title: varchar('title', { length: 255 }).notNull(),
content: text('content'),
authorId: uuid('author_id').references(() => users.id),
});
export const usersRelations = relations(users, ({ many }) => ({
posts: many(posts),
}));
Queries
const result = await db.query.users.findMany({
with: { posts: true },
where: eq(users.name, 'John'),
});
await db.insert(users).values({ name: 'John', email: 'john@example.com' });
await db.update(users).set({ name: 'Jane' }).where(eq(users.id, id));
Target Processes
- database-setup
- backend-development
- nextjs-full-stack