D1 Drizzle Schema

Esquemas Drizzle para Cloudflare D1 con límites correctos de booleanos, marcas de tiempo, JSON y parámetros

Por jezweb · jezweb/claude-skills

Probado · Funciona ★ 8.8/10

D1 Drizzle Schema — Esquemas Drizzle para Cloudflare D1 con límites correctos de booleanos, marcas de tiempo, JSON y parámetros

Qué hace

Genera archivos de esquema Drizzle ORM para bases de datos Cloudflare D1 utilizando patrones de columna correctos para D1: booleanos y marcas de tiempo en modo entero, columnas JSON tipadas, texto restringido por enumeración, claves primarias UUID, relaciones y exportaciones de tipos inferidos. También proporciona la plantilla drizzle.config.ts, scripts de migración de wrangler y un patrón de procesamiento por lotes que mantiene las inserciones masivas por debajo del límite de 100 parámetros vinculados de D1. Se activa al crear una base de datos D1, añadir tablas o andamiar una capa de datos D1 en un Worker.

Informe de la prueba

Instalado en un HOME temporal (export HOME=$(mktemp -d)); SKILL.md se ubicó en ~/.claude/skills/d1-drizzle-schema/SKILL.md con los 4 archivos referenciados presentes (cada uno obtenido sin procesar con HTTP 200), el frontmatter tiene name+description, no hay patrones de curl|sh, base64 o lectura de secretos. Tarea: esquema para una aplicación de tickets de soporte D1 (organisations/users/tickets) más un importador masivo de tickets — escribí una línea base primero (/tmp/.../baseline-schema.ts), luego una versión siguiendo la habilidad (skill-schema.ts), instalé drizzle-orm 0.45.2 + typescript y compilé ambos en modo estricto (tsc exit 0), luego forcé errores de nunca asignación para leer los tipos de columna inferidos. Diferencia medida: createdAt de la línea base es `string | null`, el de la habilidad es `Date`; isActive de la línea base `number | null` vs el de la habilidad `boolean`; tags de la línea base `string | null` vs el de la habilidad `TicketTags | null`; status de la línea base `string` vs el de la habilidad `"closed" | "open" | "pending"`. Ejecuté ambas inserciones masivas a través del toSQL() del dialecto sqlite-proxy: la línea base emite UNA declaración con 160 parámetros vinculados (superando el límite de 100 de D1), el bucle por lotes de la habilidad emite 84/84/72 — la ganancia funcional concreta. Documentación penalizada un punto: la descripción promete una salida DATABASE_SCHEMA.md pero el Paso 7 solo da un esquema de cuatro viñetas sin plantilla, y no lo ejercité.

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

Instalación

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

Comandos y prompts de ejemplo

  • /d1-drizzle-schemaEsquemas Drizzle para Cloudflare D1 con límites correctos de booleanos, marcas de tiempo, JSON y parámetros

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

  • 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