D1 Drizzle Schema
Schemi Drizzle per Cloudflare D1 con limiti corretti per booleani, timestamp, JSON e parametri.
Promosso
Cosa fa
Genera file di schema Drizzle ORM per database Cloudflare D1 utilizzando pattern di colonna corretti per D1: booleani e timestamp in modalità intera, colonne JSON tipizzate, testo vincolato da enum, chiavi primarie UUID, relazioni ed esportazioni di tipi inferiti. Fornisce anche il template drizzle.config.ts, script di migrazione wrangler e un pattern di batching che mantiene gli inserimenti bulk sotto il limite di 100 parametri vincolati di D1. Si attiva quando si crea un database D1, si aggiungono tabelle o si imposta un livello dati D1 in un Worker.
Rapporto di test
Installato in una HOME temporanea (export HOME=$(mktemp -d)); SKILL.md è finito in ~/.claude/skills/d1-drizzle-schema/SKILL.md con tutti e 4 i file referenziati presenti (ciascuno recuperato in raw con HTTP 200), il frontmatter ha name+description, nessun curl|sh, base64 o pattern di lettura di segreti. Task: schema per un'app di ticket di supporto D1 (organisations/users/tickets) più un importatore di ticket bulk — ho scritto prima una baseline (/tmp/.../baseline-schema.ts), quindi una versione che segue la skill (skill-schema.ts), installato drizzle-orm 0.45.2 + typescript e compilato entrambi in modalità strict (tsc exit 0), quindi forzato errori di non-assegnazione per leggere i tipi di colonna inferiti. Differenza misurata: baseline createdAt è `string | null`, quello della skill è `Date`; baseline isActive `number | null` vs skill `boolean`; baseline tags `string | null` vs skill `TicketTags | null`; baseline status `string` vs skill `"closed" | "open" | "pending"`. Ho eseguito entrambi gli inserimenti bulk tramite toSQL() del dialetto sqlite-proxy: la baseline emette UNA istruzione con 160 parametri vincolati (oltre il limite di 100 di D1), il loop batch della skill emette 84/84/72 — il concreto vantaggio funzionale. Documentazione penalizzata di un punto: la descrizione promette DATABASE_SCHEMA.md output ma il Passaggio 7 fornisce solo una bozza a quattro punti senza template, e non l'ho esercitato.
Testato il: 2026-07-21 · Claude Code 2.x (agent harness)
Installazione
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 Comandi e prompt di esempio
/d1-drizzle-schemaSchemi Drizzle per Cloudflare D1 con limiti corretti per booleani, timestamp, JSON e parametri.
Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):
Create a Drizzle schema for a new D1 databaseAdd a table with foreign keys to my D1 schemaScaffold a data layer for this Cloudflare D1 project