Db Seed

Genererer genkørbare SQL/Drizzle seed-scripts fra dit skema, i fremmednøgle-rækkefølge

Af jezweb · jezweb/claude-skills

Testet · Virker ★ 8.8/10

Db Seed — Genererer genkørbare SQL/Drizzle seed-scripts fra dit skema, i fremmednøgle-rækkefølge

Hvad det gør

Læser et projekts Drizzle-skema, SQL-migrationer eller rå DDL og skriver et seed-script, der indsætter domæne-passende eksempeldata i fremmednøgle-afhængigheds-rækkefølge. Producerer idempotente filer (sletninger i omvendt rækkefølge eller upserts), batcher indsættelser for Cloudflare D1-grænser og gemmer booleans som INTEGER, tidsstempler som ISO-8601 TEXT og JSON som serialiseret TEXT. Udløses ved anmodninger om at seed'e en database, tilføje sample/demo/test data eller udfylde dev-tabeller.

Testrapport

Installeret i et midlertidigt HOME (export HOME=$(mktemp -d)) fra en shallow clone; skill-mappen indeholder kun SKILL.md (7522 bytes), frontmatter har name+description, body refererer ikke til eksterne filer, og jeg fandt ingen curl|sh, base64 eller injection-tekst. Outputtest: Jeg skrev et 5-tabel SQLite/D1-skema (customers, categories, products med en JSON-as-TEXT-kolonne, orders med en CHECK-begrænsning, order_items) og producerede to seed-scripts — seed-baseline.sql skrevet på min standardmåde, seed-skill.sql strengt efter skill-body'en — og udførte derefter begge to gange mod ægte sqlite3 3.43. Baseline blev indlæst én gang, men den anden kørsel kastede fem fejl ("UNIQUE constraint failed: customers.email", categories.slug, products.id, orders.id, order_items.id); skill-versionen kørte rent begge gange og udskrev sine rækkeantal (customers 8, categories 4, products 10, orders 8, order_items 12). Målt datakvalitet: json_valid(attributes) AND non-empty object = 10/10 rækker for skill-filen vs 0/4 for baseline ('{}'), ISO-8601 tidsstempler med time+Z 8/8 vs 0/3, 10 forskellige priser vs 4, rigtige produktnavne ("Baratza Encore Grinder") vs "Product 1", plus apostrof og CJK-rækker, der overlevede indsættelse; skill-filen splittede også 12 order_items i 10+2 pr. INSERT pr. dens D1 batch-regel. Trigger-fraseringer bedømt: LOAD — "Populate my local D1 database with realistic products and orders so the dashboard isn't empty", "Write a seed script for the Drizzle schema in src/db/schema.ts, about 20 rows per table", "I need demo data for the customers and invoices tables before tomorrow's client demo"; DON'T LOAD — "Add a migration that adds a phone column to the users table", "Export the production orders table to CSV so finance can review last month's revenue" — 5/5 korrekt, selvom de brede trigger-søgeord "sample data"/"test data" kunne trække den ind i ikke-database data-genereringsanmodninger. Dokumentation mister et point, fordi de D1-specifikke påstande ("max ~10 rows per INSERT", "100 bound parameter limit") er fremsat uden en kilde, og jeg kunne kun verificere den genererede SQL mod lokal SQLite, ikke ægte D1.

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

Installation

git clone --depth 1 https://github.com/jezweb/claude-skills.git /tmp/db-seed-src
mkdir -p ~/.claude/skills
cp -R /tmp/db-seed-src/plugins/cloudflare/skills/db-seed ~/.claude/skills/db-seed
# Self-contained: the skill is a single SKILL.md, no assets/ or references/ files.
# No external dependencies. Running the generated seed needs whatever your project already uses:
#   npx tsx scripts/seed.ts            (Drizzle/TypeScript output)
#   npx wrangler d1 execute DB --local --file=./scripts/seed.sql   (raw SQL output for D1)
# Alternative: the repo ships this as part of the "cloudflare" plugin
#   (plugins/cloudflare/.claude-plugin/plugin.json) if you prefer a plugin-marketplace install.
# The skill offers an optional POST /api/seed Worker endpoint pattern — it tells you to remove it
# before production; do that, or skip that section entirely.

Kommandoer og eksempelprompter

  • /db-seedGenererer genkørbare SQL/Drizzle seed-scripts fra dit skema, i fremmednøgle-rækkefølge

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

  • Seed the dev database with sample orders
  • Generate fixtures for the users and posts tables
  • Create demo data respecting foreign key order