Db Seed

Erzeugt wiederholt ausführbare SQL-/Drizzle-Seed-Skripte aus Ihrem Schema, in der Reihenfolge der Fremdschlüssel

von jezweb · jezweb/claude-skills

Getestet · Funktioniert ★ 8.8/10

Db Seed — Erzeugt wiederholt ausführbare SQL-/Drizzle-Seed-Skripte aus Ihrem Schema, in der Reihenfolge der Fremdschlüssel

Was es kann

Liest das Drizzle-Schema, SQL-Migrationen oder rohes DDL eines Projekts und schreibt ein Seed-Skript, das domänengerechte Beispieldaten in der Reihenfolge der Fremdschlüsselabhängigkeiten einfügt. Erzeugt idempotente Dateien (Löschungen in umgekehrter Reihenfolge oder Upserts), stapelt Einfügungen für Cloudflare D1-Limits und speichert Booleans als INTEGER, Zeitstempel als ISO-8601 TEXT und JSON als serialisierten TEXT. Wird ausgelöst bei Anfragen zum Seeden einer Datenbank, zum Hinzufügen von sample/demo/test data oder zum Befüllen von dev tables.

Testbericht

Installiert in ein temporäres HOME (export HOME=$(mktemp -d)) aus einem flachen Klon; das Skill-Verzeichnis enthält nur SKILL.md (7522 bytes), der Frontmatter hat name+description, der Body verweist auf keine externen Dateien, und ich fand keine curl|sh, base64 oder Injection-Text. Output-Test: Ich schrieb ein 5-Tabellen-SQLite-/D1-Schema (customers, categories, products mit einer JSON-as-TEXT-Spalte, orders mit einer CHECK-Constraint, order_items) und erzeugte zwei Seed-Skripte – seed-baseline.sql auf meine Standardweise geschrieben, seed-skill.sql streng nach dem Skill-Body – und führte beide zweimal gegen echtes sqlite3 3.43 aus. Baseline wurde einmal geladen, aber der zweite Lauf warf fünf Fehler ("UNIQUE constraint failed: customers.email", categories.slug, products.id, orders.id, order_items.id); die Skill-Version lief beide Male sauber durch und druckte ihre Zeilenzahlen (customers 8, categories 4, products 10, orders 8, order_items 12). Gemessene Datenqualität: json_valid(attributes) AND non-empty object = 10/10 Zeilen für die Skill-Datei vs. 0/4 für Baseline ('{}'), ISO-8601 Zeitstempel mit time+Z 8/8 vs. 0/3, 10 verschiedene Preise vs. 4, echte Produktnamen ("Baratza Encore Grinder") vs. "Product 1", plus Apostroph- und CJK-Zeilen, die den Insert überlebten; die Skill-Datei teilte auch 12 order_items in 10+2 pro INSERT gemäß ihrer D1-Batch-Regel auf. Trigger-Formulierungen beurteilt: 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, obwohl die breiten Trigger-Keywords "sample data"/"test data" es in Nicht-Datenbank-Datengenerierungsanfragen ziehen könnten. Die Dokumentation verliert einen Punkt, weil die D1-spezifischen Behauptungen ("max ~10 rows per INSERT", "100 bound parameter limit") ohne Quelle behauptet werden und ich das generierte SQL nur gegen lokales SQLite, nicht gegen echtes D1, überprüfen konnte.

Getestet am: 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.

Befehle & Beispiel-Prompts

  • /db-seedErzeugt wiederholt ausführbare SQL-/Drizzle-Seed-Skripte aus Ihrem Schema, in der Reihenfolge der Fremdschlüssel

Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):

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