D1 Drizzle Schema

Drizzle schema's voor Cloudflare D1 met correcte boolean, timestamp, JSON en parameterlimieten

Door jezweb · jezweb/claude-skills

Getest · Werkt ★ 8.8/10

D1 Drizzle Schema — Drizzle schema's voor Cloudflare D1 met correcte boolean, timestamp, JSON en parameterlimieten

Wat het doet

Genereert Drizzle ORM schema bestanden voor Cloudflare D1 databases met behulp van D1-correcte kolompatronen: integer-mode booleans en timestamps, getypte JSON kolommen, enum-beperkte tekst, UUID primary keys, relaties en afgeleide type exports. Levert ook de drizzle.config.ts template, wrangler migratiescripts, en een batching patroon dat bulk inserts onder D1's 100 gebonden-parameter limiet houdt. Activeert bij het aanmaken van een D1 database, het toevoegen van tabellen, of het opzetten van een D1 datalaag in een Worker.

Testrapport

Geïnstalleerd in een tijdelijke HOME (export HOME=$(mktemp -d)); SKILL.md kwam terecht in ~/.claude/skills/d1-drizzle-schema/SKILL.md met alle 4 gerefereerde bestanden aanwezig (elk ruw opgehaald HTTP 200), frontmatter heeft name+description, geen curl|sh, base64 of secret-reading patronen. Taak: schema voor een D1 support-ticket app (organisations/users/tickets) plus een bulk ticket importer — ik schreef eerst een baseline (/tmp/.../baseline-schema.ts), daarna een skill-gevolgde versie (skill-schema.ts), installeerde drizzle-orm 0.45.2 + typescript en compileerde beide onder strict mode (tsc exit 0), en forceerde vervolgens never-assignment errors om de afgeleide kolomtypes te lezen. Gemeten verschil: baseline createdAt is `string | null`, skill's is `Date`; baseline isActive `number | null` vs skill `boolean`; baseline tags `string | null` vs skill `TicketTags | null`; baseline status `string` vs skill `"closed" | "open" | "pending"`. Beide bulk inserts door de toSQL() van de sqlite-proxy dialect gehaald: baseline zendt ÉÉN statement uit met 160 gebonden parameters (boven D1's 100 limiet), de gebatchede lus van de skill zendt 84/84/72 uit — de concrete functionele winst. Docs afgewaardeerd met één punt: de beschrijving belooft DATABASE_SCHEMA.md output, maar Stap 7 geeft slechts een vier-bullet outline zonder template, en ik heb het niet geoefend.

Getest op: 2026-07-21 · Claude Code 2.x (agent harness)

Installatie

git clone --depth 1 https://github.com/jezweb/claude-skills.git /tmp/d1-drizzle-schema-src
mkdir -p ~/.claude/skills
cp -R /tmp/d1-drizzle-schema-src/plugins/cloudflare/skills/d1-drizzle-schema ~/.claude/skills/d1-drizzle-schema
# Ships SKILL.md + assets/{drizzle-config-template.ts,schema-template.ts} + references/{column-patterns.md,d1-specifics.md}
# No API keys or external services needed to generate the schema.
# To actually run migrations afterwards you need: npm i drizzle-orm drizzle-kit && npx wrangler (Cloudflare account + a D1 binding named DB)
# Plugin-marketplace alternative: /plugin marketplace add jezweb/claude-skills then /plugin install cloudflare@jezweb-skills

Commando's en voorbeeldprompts

  • /d1-drizzle-schemaDrizzle schema's voor Cloudflare D1 met correcte boolean, timestamp, JSON en parameterlimieten

Skills reageren op gewone verzoeken — geen commando's om te onthouden. Na installatie activeren prompts zoals deze de skill (in het Engels):

  • Create a Drizzle schema for a new D1 database
  • Add a table with foreign keys to my D1 schema
  • Scaffold a data layer for this Cloudflare D1 project