D1 Drizzle Schema

Drizzle-skemaer for Cloudflare D1 med korrekte boolean-, timestamp-, JSON- og parameterbegrænsninger

Af jezweb · jezweb/claude-skills

Testet · Virker ★ 8.8/10

D1 Drizzle Schema — Drizzle-skemaer for Cloudflare D1 med korrekte boolean-, timestamp-, JSON- og parameterbegrænsninger

Hvad det gør

Genererer Drizzle ORM-skemafiler for Cloudflare D1-databaser ved hjælp af D1-korrekte kolonnemønstre: integer-mode booleans og timestamps, typede JSON-kolonner, enum-begrænset tekst, UUID primærnøgler, relationer og infererede type-eksport. Leverer også drizzle.config.ts-templaten, wrangler migrationsscripts og et batching-mønster, der holder bulk-inserts under D1's 100 bundne-parameter-grænse. Udløses ved oprettelse af en D1-database, tilføjelse af tabeller eller scaffolding af et D1-datalag i en Worker.

Testrapport

Installeret i en throwaway HOME (export HOME=$(mktemp -d)); SKILL.md landede på ~/.claude/skills/d1-drizzle-schema/SKILL.md med alle 4 refererede filer til stede (hver rå-hentet HTTP 200), frontmatter har name+description, ingen curl|sh, base64 eller hemmelighedslæsningsmønstre. Opgave: skema for en D1 support-ticket app (organisations/users/tickets) plus en bulk ticket importer — jeg skrev en baseline først (/tmp/.../baseline-schema.ts), derefter en skill-følgende version (skill-schema.ts), installerede drizzle-orm 0.45.2 + typescript og kompilerede begge under strict mode (tsc exit 0), derefter tvang jeg aldrig-tildelingsfejl for at læse de infererede kolonnetyper. Målt forskel: baseline createdAt er `string | null`, skillens er `Date`; baseline isActive `number | null` vs skill `boolean`; baseline tags `string | null` vs skill `TicketTags | null`; baseline status `string` vs skill `"closed" | "open" | "pending"`. Kørte begge bulk-inserts gennem sqlite-proxy-dialektens toSQL(): baseline udsender ÉN statement med 160 bundne parametre (over D1's 100-grænse), skillens batchede loop udsender 84/84/72 — den konkrete funktionelle gevinst. Docs fratrukket et point: beskrivelsen lover DATABASE_SCHEMA.md output, men Trin 7 giver kun en fire-punkts oversigt uden template, og jeg udøvede det ikke.

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

Installation

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

Kommandoer og eksempelprompter

  • /d1-drizzle-schemaDrizzle-skemaer for Cloudflare D1 med korrekte boolean-, timestamp-, JSON- og parameterbegrænsninger

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

  • 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