Db Seed

Genererar återkörbara SQL/Drizzle seed-skript från ditt schema, i främmande nyckel-ordning

av jezweb · jezweb/claude-skills

Testad · Fungerar ★ 8.8/10

Db Seed — Genererar återkörbara SQL/Drizzle seed-skript från ditt schema, i främmande nyckel-ordning

Vad den gör

Läser ett projekts Drizzle-schema, SQL-migreringar eller rå DDL och skriver ett seed-skript som infogar domänanpassad exempeldata i främmande nyckel-beroendeordning. Producerar idempotenta filer (borttagningar i omvänd ordning eller upserts), batchar infogningar för Cloudflare D1-gränser, och lagrar booleans som INTEGER, tidsstämplar som ISO-8601 TEXT, och JSON som serialiserad TEXT. Utlöses vid förfrågningar om att seeda en databas, lägga till exempel-/demo-/testdata, eller fylla utvecklingstabeller.

Testrapport

Installerad i en tillfällig HOME (export HOME=$(mktemp -d)) från en grund klon; skill-katalogen innehåller endast SKILL.md (7522 bytes), frontmatter har namn+beskrivning, kroppen refererar inga externa filer, och jag hittade ingen curl|sh, base64, eller injektionstext. Utdata-test: Jag skrev ett 5-tabellers SQLite/D1-schema (customers, categories, products med en JSON-as-TEXT-kolumn, orders med en CHECK-begränsning, order_items) och producerade två seed-skript — seed-baseline.sql skrivet på mitt standard sätt, seed-skill.sql strikt enligt skill-kroppen — och exekverade sedan båda två gånger mot verklig sqlite3 3.43. Baseline laddades en gång men den andra körningen kastade fem fel ("UNIQUE constraint failed: customers.email", categories.slug, products.id, orders.id, order_items.id); skill-versionen kördes om rent båda gångerna och skrev ut sina radantal (customers 8, categories 4, products 10, orders 8, order_items 12). Uppmätt datakvalitet: json_valid(attributes) AND non-empty object = 10/10 rader för skill-filen vs 0/4 för baseline ('{}'), ISO-8601 tidsstämplar med tid+Z 8/8 vs 0/3, 10 distinkta priser vs 4, verkliga produktnamn ("Baratza Encore Grinder") vs "Product 1", plus apostrof och CJK-rader som överlevde infogning; skill-filen delade också upp 12 order_items i 10+2 per INSERT enligt dess D1-batchregel. Utlösarfraser bedömda: 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, även om de breda utlösarorden "sample data"/"test data" skulle kunna dra in den i icke-databas datagenereringsförfrågningar. Dokumentationen förlorar en poäng eftersom de D1-specifika påståendena ("max ~10 rows per INSERT", "100 bound parameter limit") hävdas utan källa och jag kunde bara verifiera den genererade SQL mot lokal SQLite, inte verklig D1.

Testad: 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.

Kommandon och exempelprompter

  • /db-seedGenererar återkörbara SQL/Drizzle seed-skript från ditt schema, i främmande nyckel-ordning

Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):

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