D1 Drizzle Schema

Schémas Drizzle pour Cloudflare D1 avec limites correctes pour les booléens, timestamps, JSON et paramètres.

par jezweb · jezweb/claude-skills

Testé · Fonctionne ★ 8.8/10

D1 Drizzle Schema — Schémas Drizzle pour Cloudflare D1 avec limites correctes pour les booléens, timestamps, JSON et paramètres.

Ce que fait

Génère des fichiers de schéma Drizzle ORM pour les bases de données Cloudflare D1 en utilisant des modèles de colonnes corrects pour D1 : booléens et timestamps en mode entier, colonnes JSON typées, texte contraint par enum, clés primaires UUID, relations et exportations de types inférés. Fournit également le template drizzle.config.ts, les scripts de migration wrangler, et un modèle de traitement par lots qui maintient les insertions en masse sous la limite de 100 paramètres liés de D1. Se déclenche lors de la création d'une base de données D1, de l'ajout de tables, ou de l'échafaudage d'une couche de données D1 dans un Worker.

Rapport de test

Installé dans un HOME temporaire (export HOME=$(mktemp -d)) ; SKILL.md s'est retrouvé dans ~/.claude/skills/d1-drizzle-schema/SKILL.md avec les 4 fichiers référencés présents (chacun récupéré en brut HTTP 200), le frontmatter contient name+description, aucun curl|sh, base64 ou motif de lecture de secret. Tâche : schéma pour une application de tickets de support D1 (organisations/users/tickets) plus un importateur de tickets en masse — j'ai d'abord écrit une référence (/tmp/.../baseline-schema.ts), puis une version suivant la compétence (skill-schema.ts), installé drizzle-orm 0.45.2 + typescript et compilé les deux en mode strict (tsc exit 0), puis forcé des erreurs de non-affectation pour lire les types de colonnes inférés. Différence mesurée : createdAt de la référence est `string | null`, celui de la compétence est `Date` ; isActive de la référence `number | null` vs `boolean` de la compétence ; tags de la référence `string | null` vs `TicketTags | null` de la compétence ; status de la référence `string` vs `"closed" | "open" | "pending"` de la compétence. Exécuté les deux insertions en masse via toSQL() du dialecte sqlite-proxy : la référence émet UNE instruction avec 160 paramètres liés (dépassant la limite de 100 de D1), la boucle par lots de la compétence émet 84/84/72 — le gain fonctionnel concret. Docs pénalisées d'un point : la description promet une sortie DATABASE_SCHEMA.md mais l'étape 7 ne donne qu'un plan à quatre puces sans template, et je ne l'ai pas exercé.

Testé le: 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

Commandes et exemples de prompts

  • /d1-drizzle-schemaSchémas Drizzle pour Cloudflare D1 avec limites correctes pour les booléens, timestamps, JSON et paramètres.

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • 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