agentsclimarketplace

Pitfalls drizzle orm

Skill bg-szy/TOP-SKILLS/skills/marketplace/pitfalls-drizzle-orm

全球最大的 Claude Code 技能聚合库 · 收录 3900+ 来自 12+ 来源的技能,提供在线搜索与趋势分析看板 / The world's largest Claude Code skill aggregation hub — 3900+ skills from 12+ sources with online search and trend dashboard

Install
npx -y skills add bg-szy/TOP-SKILLS --skill pitfalls-drizzle-orm

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

2.1 KB, 446 tokens by cl100k_base, as published. Nobody here has run it

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

// ❌ NEVER change primary key types
// serial → varchar or varchar → uuid BREAKS migrations

// ✅ Array columns - correct syntax
allowedTokens: text('allowed_tokens').array()  // CORRECT
// ❌ WRONG: array(text('allowed_tokens'))

// ✅ Always create insert/select types
export type Strategy = typeof strategies.$inferSelect;
export type NewStrategy = typeof strategies.$inferInsert;

// ✅ Use drizzle-zod for validation
import { createInsertSchema } from 'drizzle-zod';
export const insertStrategySchema = createInsertSchema(strategies);

Migration Safety

# Safe schema sync
npm run db:push

# If data-loss warning and you're sure
npm run db:push --force

# NEVER in production without backup

Type Inference Pattern

// ✅ Infer types from schema
import { strategies } from './schema';

type Strategy = typeof strategies.$inferSelect;
type NewStrategy = typeof strategies.$inferInsert;

// ✅ With Zod validation
import { createInsertSchema, createSelectSchema } from 'drizzle-zod';
import { z } from 'zod';

const insertSchema = createInsertSchema(strategies);
type StrategyInput = z.infer<typeof insertSchema>;

Quick Checklist

  • No primary key type changes
  • Array columns use text().array() syntax
  • Insert/select types exported for models
  • Using drizzle-zod for validation
  • Migration tested in dev before prod

What ships with it: 1 file

13.8 KB alongside SKILL.md

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.