Master 1Password: vaults, Watchtower, passkeys, SSH agent, CLI, and family/team administration. Use when getting full value from 1Password personally or administering it for others.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Drizzle ORM guidance — schema-as-code, relational queries, migrations, and SQL-first TypeScript data access.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Drizzle is a TypeScript ORM that stays close to SQL: you define tables as code, write queries with a relational query builder that mirrors SQL structure, and get full type safety without a schema DSL or heavy runtime. If Prisma feels like a layer above SQL, Drizzle feels like SQL with types.
That closeness is the point — and the responsibility. Drizzle won't hide query behavior from you, which means you need to understand joins, indexes, and transactions yourself. This skill covers Drizzle's schema-as-code model, its relational query API, migration workflow, and the SQL-first patterns that make it shine.
pgTable/mysqlTable/sqliteTable — plain code, versioned in git, refactorable with your IDE. No DSL to learn, no codegen step for the schema itself.db.query.users.findMany({ with: { posts: true } })) for nested relational reads, and the SQL-like core API (db.select().from(users).where(...)) for everything else. Learn both; use each where it fits.defineRelations (or the relations helper) declares how tables join; the relational API uses them to build joins for you. Explicit relations mean no magic — and no surprise queries.drizzle-kit generate diffs schema code into SQL migrations; drizzle-kit migrate applies them. Review generated SQL like any other migration; snapshot-based diffing can surprise on renames.sql template literals drop you to raw SQL with parameterization built in — no string concatenation.db.transaction(async (tx) => {...}) — same rules as everywhere: short, ordered row access, no network calls inside.index(), uniqueIndex(), foreign keys with onDelete actions — declared alongside the table, migrated with everything else.with clauses — understand which API you're using and what SQL it emits.drizzle-zod generates Zod schemas from table definitions — one source of truth for DB schema and API validation.drizzle-kit pull reverse-engineers existing databases for brownfield adoption.export const orders = pgTable("orders", {
id: uuid("id").primaryKey().defaultRandom(),
status: text("status").notNull().default("pending"),
total: numeric("total", { precision: 10, scale: 2 }).notNull(),
createdAt: timestamp("created_at").defaultNow().notNull(),
}, (t) => [index("orders_status_created_idx").on(t.status, t.createdAt)]);
export const ordersRelations = defineRelations(orders, (r) => ({
items: r.many.orderItems,
customer: r.one.customers, { from: r.customerId, to: r.customers.id },
}));
drizzle-kit generate then read the SQL — especially renames, which the differ may express as drop/add. Fix destructive diffs before applying.db.query.orders.findMany({ with: { items: true }, where, orderBy, limit }) — nested reads as joins, typed end to end.
sql — don't fight the relational API into shapes it wasn't built for.db.insert/update/delete with where clauses; onConflictDoUpdate for upserts; returning clauses to get rows back.
const [order] = await db.insert(orders)
.values({ status: "paid", total: "99.99" })
.returning({ id: orders.id });
drizzle-zod schemas for API input; the DB schema and the API schema stay in sync by construction.sql when needed.sql for aggregations and complex joins.sql — interpolating values into sql fragments instead of using its parameter binding; that's SQL injection.onDelete actions — default restrict behavior surprising deletes; declare referential actions explicitly.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Master 1Password: vaults, Watchtower, passkeys, SSH agent, CLI, and family/team administration. Use when getting full value from 1Password personally or administering it for others.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create 3D visuals with modeling, texturing, lighting, rendering, and optimization for web and product.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create 3D web experiences: scene setup, models, materials, lighting, animation, scroll-driven scenes, and performance budgets. Use when adding 3D to websites beyond basic demos.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Writing abstracts that get papers read — structured content, the 5-sentence core, and journal-specific constraints.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Learn effectively from courses and academies: choosing programs, studying actively, and converting courses into skills. Use when investing time/money in structured learning.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Audit designs for accessibility with WCAG checklists covering color, type, focus, motion, and content.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.