Db Seed

Genera script di seed SQL/Drizzle ri-eseguibili dal tuo schema, in ordine di chiave esterna

di jezweb · jezweb/claude-skills

Promosso ★ 8.8/10

Db Seed — Genera script di seed SQL/Drizzle ri-eseguibili dal tuo schema, in ordine di chiave esterna

Cosa fa

Legge lo schema Drizzle di un progetto, le migrazioni SQL o il DDL grezzo e scrive uno script di seed che inserisce dati di esempio appropriati al dominio in ordine di dipendenza da chiave esterna. Produce file idempotenti (eliminazioni in ordine inverso o upsert), raggruppa gli inserimenti per i limiti di Cloudflare D1 e memorizza i booleani come INTEGER, i timestamp come ISO-8601 TEXT e i JSON come TEXT serializzato. Si attiva su richieste di seed di un database, aggiunta di dati di esempio/demo/test o popolamento di tabelle di sviluppo.

Rapporto di test

Installato in una HOME temporanea (export HOME=$(mktemp -d)) da un clone superficiale; la directory della skill contiene solo SKILL.md (7522 byte), il frontmatter ha name+description, il corpo non fa riferimento a file esterni e non ho trovato curl|sh, base64 o testo di iniezione. Test di output: ho scritto uno schema SQLite/D1 a 5 tabelle (customers, categories, products con una colonna JSON-as-TEXT, orders con un vincolo CHECK, order_items) e ho prodotto due script di seed — seed-baseline.sql scritto nel mio modo predefinito, seed-skill.sql seguendo rigorosamente il corpo della skill — quindi li ho eseguiti entrambi due volte contro un vero sqlite3 3.43. La baseline è stata caricata una volta ma la seconda esecuzione ha generato cinque errori ("UNIQUE constraint failed: customers.email", categories.slug, products.id, orders.id, order_items.id); la versione della skill è stata rieseguita senza problemi entrambe le volte e ha stampato i conteggi delle righe (customers 8, categories 4, products 10, orders 8, order_items 12). Qualità dei dati misurata: json_valid(attributes) AND non-empty object = 10/10 righe per il file della skill vs 0/4 per la baseline ('{}'), timestamp ISO-8601 con time+Z 8/8 vs 0/3, 10 prezzi distinti vs 4, nomi di prodotti reali ("Baratza Encore Grinder") vs "Product 1", più righe con apostrofi e CJK che sono sopravvissute all'inserimento; il file della skill ha anche diviso 12 order_items in 10+2 per INSERT secondo la sua regola di batch D1. Frasi di attivazione giudicate: CARICA — "Popola il mio database D1 locale con prodotti e ordini realistici in modo che la dashboard non sia vuota", "Scrivi uno script di seed per lo schema Drizzle in src/db/schema.ts, circa 20 righe per tabella", "Ho bisogno di dati demo per le tabelle customers e invoices prima della demo del cliente di domani"; NON CARICARE — "Aggiungi una migrazione che aggiunge una colonna phone alla tabella users", "Esporta la tabella degli ordini di produzione in CSV in modo che la finanza possa rivedere i ricavi del mese scorso" — 5/5 corretto, sebbene le ampie parole chiave di attivazione "sample data"/"test data" potrebbero portarla a richieste di generazione di dati non di database. La documentazione perde un punto perché le affermazioni specifiche di D1 ("max ~10 rows per INSERT", "100 bound parameter limit") sono asserite senza una fonte e ho potuto verificare il SQL generato solo contro SQLite locale, non un vero D1.

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

Installazione

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.

Comandi e prompt di esempio

  • /db-seedGenera script di seed SQL/Drizzle ri-eseguibili dal tuo schema, in ordine di chiave esterna

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

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